전체 글 171

BOJ/백준 - 2798 블랙잭 JAVA

블랙잭 문제. 브루트포스 문제다! 브루트포스는 모든 경우의 수를 다 검사해주면 된다. 입력받을 때 시간을 조금이라도 단축시키기 위해 BufferedReader로 입력받았다. 그리고 StringTokenizer를 사용해 배열에 각 요소를 입력받았고, 3개를 선택하면 되니까 3중 for문으로 모든 경우를 검사해주면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public ..

BOJ/백준 - 1181 단어 정렬 JAVA

CompareTo()를 사용하면 사전순으로 단어가 정렬된다. 16번째 줄부터는 compare함수를 람다식으로 구현했다. compare함수는 반환형이 int인데, 양수면 자리를 바꾸고 음수나 0이 반환되면 자리를 바꾸지 않는다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuil..

BOJ/백준 - 11651 좌표 정렬하기 2 JAVA

좌표 정렬하기 문제에서 정렬 순서만 바꿔주면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buffered..

BOJ/백준 - 1427 소트인사이드 JAVA

무난하게 통과했다! C++같은 경우는 sort(arr.rbegin(),arr.rend())로 간단히 뒤집어서 출력할 수 있었는데 유유 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)..

BOJ/백준 - 10989 수 정렬하기 3 JAVA

Collections.sort()를 이용하면 ArrayList때문에 메모리 초과가 나더라~! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in));..

BOJ/백준 - 2751 수 정렬하기 2 JAVA

Collections.sort()로 정렬하기 Collections.sort를 사용하려면 ArrayList를 사용해주어야한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = ne..

JAVA 정렬하는 방법

Arrays.sort()로 풀면 시간초과가 나는 문제가 있는데, Arrays.sort()의 경우 dual-pivot Quicksort 알고리즘을 사용한다. 얘는 평균 시간 복잡도 O(nlogn), 최악 O(n²) 따라서 시간초과가 날 수 있다. 해결 방법 ①Collection.sort() Timsort → 합병 정렬(Merge sort), 삽입 정렬(Injection sort) 알고리즘을 사용하는데, 합병 정렬의 최악의 경우와, 삽입 정렬의 최선의 경우가 섞여있는 정렬 알고리즘을 hybrid sorting algorithm이라고 한다. 합병 정렬 : 최선, 최악 모두 O(n) 삽입 정렬 : 최선 O(nlogn), 최악 O(n²) 두 정렬 모두 안정 정렬(stable sort)이다. 시간 복잡도가 O(n)..

Algorithm/이론 2021.08.09