정렬33 [Baekjoon] 10815 - 숫자 카드 📝 문제 🔑 풀이 과정 · 주어진 시간은 2초. 약 2억번 연산. N과 M의 최댓값이 5 * 10^5 이므로 일반적인 for문을 사용한 완전탐색 사용시, 최악의 경우 2.5 * 10^10 번 연산이 나오므로 사용할 수 없다. 그래서 일반탐색 대신 이분탐색을 사용할 것. · 이분탐색은 기본적으로 정렬이 되어있는 상태에서 가능하다. 꼭! 배열을 입력받은뒤 정렬을 해주자. · 처음 작성했던 코드가 이분탐색 부분에서 while(start < end) 라고 조건을 적었는데, 이럴 경우 start == end 인 경우 반복문이 작동하지 않게 된다. 조건은 while(start 2023. 6. 9. [Baekjoon] 2751 - 수 정렬하기 2 📝 문제 🔑 풀이 과정 시간제한이 2초이고 N의 최댓값이 10^6 이므로 O(N^2)인 정렬 알고리즘은 사용 불가하다. 나는 시간복잡도가 O(nlogn)인 Array.sort()를 사용해서 정렬했다. 🔓 답안 import java.io.*; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); //입력 int.. 2023. 6. 3. [Baekjoon] 11651 - 좌표 정렬하기 2 📝 문제 🔑 풀이 과정 11650번 - 좌표 정렬하기 1 문제는 Point 클래스를 따로 생성해서 풀이했으나, 이번 11651번 문제는 그냥 2차원 배열을 생성해서 풀이했다. 어려운건 없고, 문제 그대로 y좌표를 먼저 비교해서 y좌표순으로 정렬되게 하고, 만약 y좌표가 같다면 x좌표를 비교해서 x좌표 순으로 정렬되게 한다. Array.sort() + Comparator 사용 🔓 답안 import java.io.*; import java.util.Arrays; import java.util.Comparator; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOExceptio.. 2023. 6. 2. [Baekjoon] 1181 - 단어 정렬 📝 문제 🔑 풀이 과정 길이 순으로 정렬하는 것은 Comparator를 사용하면 된다는 것을 알았는데, 사전순으로는 어떻게 해야하는지가 걱정됐다. 그런데 String클래스의 compareTo 메서드를 사용하면 자동적으로 사전순 정렬이 된다. https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#compareTo-java.lang.String- String (Java Platform SE 8 ) Compares two strings lexicographically. The comparison is based on the Unicode value of each character in the strings. The character sequence .. 2023. 6. 1. [Baekjoon] 11650 - 좌표 정렬하기 📝 문제 🔑 풀이 과정 이 문제는 좌표가 둘 다 숫자이기 때문에 그냥 int형 2차원 배열을 사용해도 된다. 그러나 나는 Point 클래스를 생성해서 풀이하였다. Point 클래스 생성 + Comparator compare 메서드(무명 클래스) + toString을 사용한 출력 을 조합해서 푼 문제. x좌표가 다른 경우에는 x좌표만 비교하기. x좌표가 같은 경우에는 y좌표를 비교해서 순서를 결정하게 했다. 문제 조건에서 위치가 같은 두 점은 없다 했으므로 0을 반환되는 경우는 생각하지 않아도 된다. 🔓 답안 import java.io.*; import java.util.Arrays; import java.util.Comparator; import java.util.StringTokenizer; publi.. 2023. 5. 31. [Baekjoon] 10814 - 나이순 정렬 📝 문제 🔑 풀이 과정 Person 객체를 따로 만들지는 않았고, String형 2차원 배열을 생성했다. 배열의 0번 인덱스에는 나이, 1번 인덱스에는 이름이 들어간다. 그리고 Comparator 인터페이스의 compare() 메서드를 구현해서 정렬했다. 여기서 배열이 String형이므로 나이를 비교할 때 Integer.parseInt()를 사용해서 정수형으로 변환해준 후 비교한다. 문제의 조건을 보면 나이가 같으면 가입한 순서대로 정렬하라 되어있다. compare() 메소드에서 반환 값이 0인 경우는 객체의 위치를 바꾸지 않기 때문에 자연스럽게 가입 순서대로 정렬이 된다. 🔓 답안 import java.io.*; import java.util.Arrays; import java.util.Comparat.. 2023. 5. 30. 이전 1 2 3 4 5 6 다음