https://www.acmicpc.net/problem/2751
Collections.sort 써서 풀었는데 시간초과가 떴다
오답코드
package Doit알고리즘코딩테스트.정렬;// @ author ninaaano
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class P2751_수정렬하기2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
List<Integer> sortList = new ArrayList<>();
for(int i = 0; i<n; i++){
sortList.add(Integer.valueOf(br.readLine()));
}
Collections.sort(sortList);
for(int i : sortList) {
System.out.println(i);
}
}
}
여기서 어디서 시간이 많이 걸렸을까?
찾아보니 StringBulider를 쓰면 시간을 단축할 수 있다해서 StringBuilder를 사용했더니 통과됐다..
package Doit알고리즘코딩테스트.정렬;// @ author ninaaano
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class P2751_수정렬하기2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
List<Integer> sortList = new ArrayList<>();
for(int i = 0; i<n; i++){
sortList.add(Integer.parseInt(br.readLine()));
}
Collections.sort(sortList);
for(int i : sortList) {
sb.append(i+"\n");
}
System.out.print(sb);
}
}
시간복잡도는 언제 공부해야하나ㅠㅠ