문제 링크
모의고사
풀이
import java.util.ArrayList;
class Solution {
public Integer[] solution(int[] answers) {
Integer[] answer = {};
int[] personA = {1, 2, 3, 4, 5};
int[] personB = {2, 1, 2, 3, 2, 4, 2, 5};
int[] personC = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
int a = checkScore(answers, personA);
int b = checkScore(answers, personB);
int c = checkScore(answers, personC);
return compare(a, b, c);
}
int checkScore(int[] answers, int[] compareArr) {
int result = 0;
for (int i = 0; i < answers.length; i++) {
if (answers[i] == compareArr[i % compareArr.length]) result++;
}
return result;
}
Integer[] compare(int a, int b, int c) {
ArrayList<Integer> list = new ArrayList();
if (a > b && a > c) {
list.add(1);
} else if (b > a && b > c) {
list.add(2);
} else if (c > a && c > b) {
list.add(3);
} else if (a == b && a > c) {
list.add(1);
list.add(2);
} else if (b == c && b > a) {
list.add(2);
list.add(3);
} else if (a == c && a > b) {
list.add(1);
list.add(3);
} else if (a == b && b == c) {
list.add(1);
list.add(2);
list.add(3);
}
return list.stream().map(x -> x.intValue()).toArray(Integer[]::new);
}
}
소감
- 머리가 나쁘면 손이 고생한다..
Math.max
함수를 사용하면 훨씬 쉽게 비교할 수 있다. 어흐흑