취준을 위한 코딩테스트에는 파이썬이 유리하다는 이야기를 많이 들었고, 때문에 계속 파이썬으로 알고리즘 문제를 풀어왔다..
그러던 중 그래도 스프링 프레임워크를 공부하면서 메인 언어로 사용 중인 자바로도 알고리즘 문제들을 풀 수 있어야 하지 않을까 라는 생각에 자바로 문제를 풀어 봤지만..
어떤 방식으로 풀어야되는지는 알겠는데 그걸 어떻게 구현해야할지 막히는 문제가 발생하였다...
나름대로 Spring/SpringBoot를 게속 사용했고, 학교에서 디자인패턴도 공부하면서 자바 문법에 익숙해져 있다고 생각했는데 알고리즘 문제풀이에는 또다른 것들이 필요했다.
// 2022/01/30
Arrays.sort(tempArray); // 오름차순
Arrays.sort(tempArray, Collections.reverseOrder()); //내림차순
// 오름차순 (compare함수를 변경하면, 비교방식 변경 가능)
Arrays.sort(answer, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return answer[o1] - answer[o2];
}
});
//2022/02/07
Integer[] answer;
Arrays.sort(answer, (o1, o2) -> o1 - o2);
// 3-2 응용
Integer[][] answer; // 각 row의 0번째 index를 기준으로 정렬
Arrays.sort(answer,(o1,o2) -> o1[0] - o2[0]);
// 2022/02/07
int[] answer = Arrays.copyOfRange(originalArray, startIndex, endIndex);
// 2022/01/30
String temp = answerHashMap.keySet().toString(); // key
String temp = answerHashMap.values(); // value
// temp는 "[String1, String2]" 형태가 된다.
answer = temp.substring(1, temp.length()-1);
// 처음과 마지막의 [,]를 substring 메소드로 제거하는 것이다.
// 2022/02/03
ArrayList<Integer> answerArrayList = new ArrayList<>();
// 기본적인 방법
int[] answer = answerArrayList.stream().mapToInt(i->i).toArray();
// 필터를 적용시켜서 null값을 제외하는 코드
int[] answer2 = answerArrayList.stream().filter(i-> i!=null).mapToInt(i->i).toArray();
문제 : 프로그래머스 > 코딩테스트 연습 > 스택/큐 > 프린터
https://programmers.co.kr/learn/courses/30/lessons/42587
// 2022/02/07
class DocumentData {
private int priorty;
private int location;
public DocumentData(int priorty, int location) {
this.priorty = priorty;
this.location = location;
}
public int getPriorty() {
return priorty;
}
public int getLocation() {
return location;
}
}