Java 문법을 알고있다고 생각을 했었지만,
스트림, 람다, 제네릭(T,E,N,K,V) 인터페이스(Comparator), 각종 유틸리티 클래스(Arrays. Collections),
접근 제어자, 메소드(생성자) 참조 등등 여러 개념들에 있어서 완전히 익숙하지가 않은 것 같다.
코딩 테스트에서 해당 개념들을 어떻게 활용할 지 꾸준한 고민이 필요할 것 같다. 특히 해당 유튜브에서는
매우 간단한 개념들을 제시하였지만 꼬리 물기 질문을 통해서 깊게 파고 들 수 있었다.
모든 것들을 알아야 하진 않지만 이런 것들이 있다~ 정도로 이해하고 실제 코딩 테스트 준비할 때는
자주 나오는 것들을 손에 익히는 것으로 대비하면 될 것 같다. (ex. Comparator, ArrayList for Graph ...etc)
-> 특정 테스트 케이스에서 실패할 때
-> 테스트 케이스 성공하더라도 의심해보기!
int answer = 10000000000;
answer = += 20000000000
과 같은 경우 오류가 발생함
-> 시간초과로 실패할 때
Scanner sc = new Scanner(System.in)
int a = sc.nextInt();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int list[] = {3,2,1};
Arrays.sort(list)l
Integer list[] = {3,2,1}
Arrays.sort(list, Collections.reverseOrder());
@Override
public int compare(Integer n1, Integer n2){
return n2.compareTo(n1); /
}
}```
이런 식으로 사용하던 것을 reverseOrder로 줄여 쓴 형태 int list[] = {3,2,1};
Integer[] tmp = Arrays.stream().boxed().toArray(Integer[]::new);
Arrays.sort(list, Collections.reverseOrder());
int list[] = {-3,-2,-1};
Arrays.sort(list);
Class Score implements Comparable<Score>
@Override
public int compareTo(Score o){
if (this.english != o.english){
return this.english - o.english;
}
return this.math - o.math;
}
실제로 정렬할 때는 아래 방식으로 사용
ArrayList<Score> list = new ArrayList<>();
Collections.sort(list);