처음 설계한것은 아래의 사진과 같다.
그러나 sorting에서 문제가 생겼다. 같은 등수일 경우가 있는데 이것을 해결하는 방법이 떠오르지 않았다.
결국 다른방법으로 풀었는데..
우선 answer배열을 Arrays.fill을 사용하여 1로 채워넣었다.
그 후 2중 반복문을 수행하여 스코어를 비교하였고, 더 크면 그때마다 ++ 해주었다.
import java.util.Arrays;
public class 등수매기기 {
public static int[] solution(int[][] score) {
int[] answer = new int[score.length];
Arrays.fill(answer, 1);
for (int i = 0; i < score.length; i++) {
for (int j = 0; j < score.length; j++) {
if (score[i][0] + score[i][1] > score[j][0] + score[j][1]) {
answer[j]++;
}
}
}
return answer;
}
public static void main(String[] args) {
// int[][] score = new int[][]{{80, 70}, {70, 80}, {30, 50}, {90, 100}, {100, 90}, {100, 100}, {10, 30}};
int[][] score = new int[][]{{0, 20}, {80, 100}, {10, 10}, {90, 90}, {20, 0}};
int[] result = solution(score);
for (int r : result) {
System.out.println(r);
}
}
}
'Java > Programmers' 카테고리의 다른 글
[Lv.0]저주의 숫자3 (0) | 2023.01.17 |
---|---|
[Lv.0]특이한 정렬 (0) | 2023.01.17 |
[Lv.0]유한소수 판별하기 (0) | 2023.01.17 |
[Lv.0]문자열 밀기 (0) | 2023.01.17 |
[Lv.0]직사각형 넓이 구하기 (1) | 2023.01.17 |
댓글