본문 바로가기

분류 전체보기130

[백준 알고리즘][자바] 1427번 : 소트인사이드 https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 이번 문제는 개행되어서 숫자가 주어지는 것이 아닌, 한 번에 숫자가 주어지고 각 자릿수를 뽑아내서 정렬을 해야 하는 문제입니다. 다양한 정렬을 사용하여 문제를 해결할 수 있는데 이번 포스팅에서는 이때까지 많이 사용했던 카운팅 정렬과 Arrays.sort()를 사용해서 해결해보겠습니다. 2022.05.07 - [Algorithm/Theory] - [Java] Counting Sort(카운팅 정렬) [Java] Counting Sort(카운팅 정렬) Counting Sort는 일반적인 .. 2022. 6. 15.
[백준 알고리즘][자바] 2108번 : 통계학(카운팅 정렬) https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 이번 문제를 해결할 때는 카운팅 정렬을 사용합니다. 2022.05.07 - [Algorithm/Theory] - [Java] Counting Sort(카운팅 정렬) [Java] Counting Sort(카운팅 정렬) Counting Sort는 일반적인 정렬 알고리즘과 달리 데이터를 서로 비교하지 않고, 데이터의 값을 카운팅 하여 정렬하는 알고리즘입니다. 시간 복잡도는 O(n)인데, 빠른 정렬 알고리즘으로 알려져.. 2022. 6. 14.
[Java] 자바 람다식(Lambda Expression)이란? 자바 8부터 추가된 스트림(Stream)을 사용하기 위해서는 람다식(Lambda Expression)의 이해가 필수적입니다. 이번 포스팅에서는 람다식에 대해 알아보도록 하겠습니다. 람다식(Lambda Expression) 이란? 람다식(Lambda Expression)이란 메서드를 하나의 식으로 표현한 것입니다. 메서드를 식으로 표현한다면 메서드의 이름이 필요 없기 때문에 람다식은 익명 함수(Anonymous Function)의 한 종류로 볼 수 있습니다. 기존의 메서드들은 아래와 같이 사용하였습니다. public static void main(String[] args) { system.out.println(hello()); } public static String hello() { return "hel.. 2022. 6. 8.
[백준 알고리즘][자바] 10989번 : 수 정렬하기 3 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 기본적인 수 정렬하기 시리즈 마지막 문제입니다. 이번 문제에서는 아래의 3가지 방법을 사용하여 풀어보도록 하겠습니다. 직접 구현한 Counting Sort를 사용 Arrays.sort()를 사용 Collections.sort()를 사용 2022.05.07 - [Algorithm/Theory] - [Java] Counting Sort(카운팅 정렬) [Java] Counting Sort(카운팅 정렬) Counting S.. 2022. 5. 7.
[Java] Counting Sort(카운팅 정렬) Counting Sort는 일반적인 정렬 알고리즘과 달리 데이터를 서로 비교하지 않고, 데이터의 값을 카운팅 하여 정렬하는 알고리즘입니다. 시간 복잡도는 O(n)인데, 빠른 정렬 알고리즘으로 알려져 있는 Quick Sort, Merge Sort, Heap Sort 등의 시간 복잡도가 O(nlogn)라는 것을 생각하면 Counting Sort의 속도가 엄청나다는 것을 알 수 있습니다. 그럼 왜 Counting Sort는 사용하지 않는 것일까요? Counting Sort는 정렬 할 배열의 최댓값의 +1만큼 새로운 카운팅 배열을 생성해줘야 하는데, 수의 범위가 크다면 메모리를 많이 낭비하기 때문에 자주 사용하지 않습니다. 과정 1. 먼저 정렬할 배열의 데이터의 최댓값의 +1 크기의 카운팅 배열을 생성합니다. .. 2022. 5. 7.
[백준 알고리즘][자바] 2751번 : 수 정렬하기 2 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 이번 문제는 자바에 내장되어 있는 정렬 함수를 사용하여 푸는 문제이다. 자바에 내장되어 있는 정렬 함수는 Arrays.sort() 와 Collections.sort()가 있다.(자바 8기준) 2022.04.30 - [Programming/Java] - [Java] 자바 내장 정렬 함수 - Arrays.sort() [Java] 자바 내장 정렬 함수 - Arrays.sort() 데이터들을 .. 2022. 5. 3.
[Java] 자바 내장 정렬 함수 - Arrays.sort() 데이터들을 정렬시킬 때, 어떤 정렬 알고리즘을 사용해야 하는지 판단하는 중요한 요소중 하나는 시간 복잡도입니다. 자바 내부에서 사용하는 정렬은 시간 복잡도가 얼마인지 알 필요성이 있다고 생각합니다. 이번 포스팅에서는 자바의 내장 정렬 함수 중 하나인 Arrays.sort()를 알아보도록 하겠습니다.(JAVA 8 기준) java.util.Arrays.sort() Arrays.sort()는 내부적으로 DualPivotQuicksort.sort()를 호출한다. 퀵 정렬의 시간 복잡도는 일반적으로 최선의 경우에는 O(nlogn)을 가지고, 최악의 경우에는 O(n^2)를 가진다. 주석을 해석해보면 DualPivotQuicksort.sort()는 최악의 시간 복잡도를 갖게 하는 많은 데이터 셋들에 대해서도 O(nl.. 2022. 4. 30.
[Java] 자바 Enum 클래스 사용법 정리 Enum 이란? Enum은 열거형(enumrated type)이라고 부르며, 서로 연관된 데이터를 가진 상수들의 집합을 관리해주는 클래스입니다. public enum Day { 월, 화, 수, 목, 금, 토, 일 } Enum을 사용하면 다음과 같은 장점이 있습니다. Enum의 열거체를 비교할 때, 값뿐만 아니라 타입까지 체크하기 때문에 안정적입니다. 깔끔한 코드 작성이 가능합니다. 열거체를 값이 변경되더라도 다시 컴파일할 필요가 없습니다. Enum 사용법 제가 생각하는 Enum의 가장 큰 장점은 열거체에 원하는 상수값을 명시할 수 있기 때문에, 값을 전달할 때 상수값이 무엇인지 신경 쓰지 않아도 된다는 것입니다. 아래의 코드를 보겠습니다. public enum Day { 월(1), 화(2), 수(3), .. 2022. 3. 18.
[Java] Setter를 사용할 때 주의할 점(Feat. 불변객체) 자바(Java)를 사용해서 애플리케이션을 개발할 때, 대부분의 개발자는 객체를 사용합니다. 그 객체 안에는 여러 가지 메서드가 존재하지만 대표적으로 Getter와 Setter가 있습니다. Getter는 값을 얻기 위해서 필수적이지만 Setter는 필수적이지는 않습니다. 그 이유는 생성자가 있기 때문입니다. 하지만 많은 개발자들이 Setter의 편리함 때문에 많이 사용하곤 합니다. 이번 포스팅에서는 Setter를 사용할 때 주의할 점에 대해 알아보도록 하겠습니다. 기본형 vs 참조형 자바에는 대표적으로 두가지 변수가 존재합니다. 바로 기본형과 참조형입니다. 기본형과 참조형의 가장 큰 차이점은 변수를 저장하는 방법에 차이가 있습니다. 2021.01.05 - [Programming/Java] - 자바 기본형과.. 2022. 3. 17.
[Java] 자바 환경변수 설정하기 자바 환경변수 설정 자바를 처음 설치했을 때, OS가 JDK를 참조할 수 있도록 그 경로들을 환경변수로 설정해야 합니다. 자바 환경변수는 아래의 순서에 따라 설정합니다. JAVA_HOME 등록 CLASS_PATH 등록 bin폴더 Path 등록 확인 JAVA_HOME 등록 1. 설정 클릭 2. 설정 > 시스템 3. 설정 > 시스템 > 정보 4. 설정 > 시스템 > 정보 > 고급 시스템 설정 5. 설정 > 시스템 > 정보 > 고급 시스템 설정 > 환경 변수 6. 시스템 변수 새로 만들기 클릭 7. 변수 이름 : JAVA_HOME , 변수 값 : C:\Program Files\Java\jdk1.8.0_251 (자신의 자바 설치 경로) CLASS_PATH 등록 1. 새로 만들기 클릭 2. 변수 이름 : CLAS.. 2022. 3. 16.
반응형