반응형 Algorithm66 BufferedReader 백준 2751 수 정렬하기 2 문제를 풀던 중, 100만개의 데이터를 정렬할 때, Collections.sort(list)에 문제점이 있나 확인하면서 찾았지만, 정렬이 문제가 아닌 데이터를 읽는 시간이 문제였다. Scanner로 읽으면 성능이 매우 떨어져서 시간초과가 났는데 BufferedReader로 데이터를 읽었을 때 성공했다. BufferedReader는 무엇인지 빠른 성능으로 입력을 받을 때 어떤 라이브러리를 사용하는지 확인해본다. 1.1 입출력이란? I/O란 Input과 output의 약자로 입력과 출력, 간단히 입출력이라고 한다. 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 말한다. 1.2 스트림(Stream) 자바에서 입출력을 수행하려면, 즉 어느 한쪽에서 다.. 2020. 7. 6. Comparable & Comparator Comparable This interface imposes a total ordering on the objects of each class that implements it. This ordering is referred to as the class's natural ordering, and the class's compareTo method is referred to as its natural comparison method. Lists (and arrays) of objects that implement this interface can be sorted automatically by Collections.sort (and Arrays.sort). Objects that implement this.. 2020. 7. 6. 투 포인터(Two Pointer) 투 포인터는 1차원 배열에서 선형시간에 2개의 배열요소(인접 할 경우 2개 이상의 배열요소)를 이용하여 문제를 해결해야 하는 경우 사용한다. 2개의 배열요소를 이용한다는 것은 2개를 비교한다는 것을 의미한다. 보통의 방식으로는 배열에서 요소 2개를 배교하면 시간복잡도 O(N^2)로 풀게 되는데, 왜냐하면 모든 배열 요소들을 처음부터 끝까지 확인해야 하기 때문이다. 하지만, 이전에 방문한 것을 다시 방문하지 않는 투 포인터 방식을 사용하면 O(N)만에 해결이 가능하다. 투 포인터의 포인터는 당연하게도 C언어와 관련한 포인터가 아닌 배열의 특정 원소위치를 가리키는 것을 의미한다. 기본적인 개념을 넘어가고 백준 알고리즘에서 풀었던 문제에 대한 팁을 몇가지 적는다. 2003번: 수들의 합 2 import jav.. 2020. 7. 5. 이전 1 ··· 5 6 7 8 다음 반응형