오늘은 알고리즘 문제를 풀며 배운 것들을 기록.
TreeSet
을 이용해보자.int[y축인덱스][x축인덱스]
ex)
int[] first = {1,2,3,4,5};
int[] second = {2,1,2,3,2,4,2,5};
int[] third = {3,3,1,1,2,2,4,4,5,5};
int[] scores = {0,0,0};
// answer배열 길이만큼 순회하며 first, second, third 요소를 계속해서 돌며 어떤 작업을 해야 할 때,
// % 나머지 연산자로 인덱스를 뽑아내면 재귀를 사용할 필요가 없었던 문제.
for(int i = 0; i < answers.length; i++) {
if(first[i % 5] == answers[i]){ scores[0]++;}
if(second[i % 8] == answers[i]){ scores[1]++;}
if(third[i % 10] == answers[i]){ scores[2]++;}
}
알고리즘 문제를 풀면서 코드를 짜다보면 이거 아닌 거 같다는 느낌이 들 때가 있다.. 어떻게든 풀어보겠다고 용쓰는 것은 좋으나 투입한 시간만큼 학습 효과는 뽑아내야 할 게 아닌가? 종일 붙들지 말고 적당히 고민했으면 더 나은 코드를 찾아나서자. 배운 걸로 다음 문제 더 잘 풀면 되지. 고수들 코드로 기초를 빨리 익히자.
그리고 배열 <-> 컬렉션 스위칭할 수 있는 api는 꼭 숙달시켜놓고( https://codechacha.com/ko/java-convert-set-to-list-and-list-to-set/ ), 문제 요건을 똑바로 보자.