💬 문제 설명
영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요.
🚫 제한 사항
- 0 ≤ score[0], score[1] ≤ 100
- 1 ≤ score의 길이 ≤ 10
- score의 원소 길이는 2입니다.
- score는 중복된 원소를 갖지 않습니다.
📢 입출력 예
👨🏫 입출력 예 설명
📃 제출 코드
import java.util.ArrayList;
class Solution {
public int[] solution(int[][] score) {
int[] answer = new int[score.length];
for (int i = 0; i < answer.length; i++) {
answer[i] = score[i][0] + score[i][1];
}
ArrayList<Integer> list = new ArrayList();
for (int i = 0; i < answer.length; i++) {
int rank = 1;
for (int j = 0; j < answer.length; j++) {
if (answer[i] < answer[j]) rank++;
}
list.add(rank);
}
answer = list.stream().mapToInt(i -> i).toArray();
return answer;
}
}
✏ 해결방법 & 배운점
배열 초기화
- answer 배열의 길이는 score 배열의 길이와 동일하므로, score.length로 설정합니다.
- answer 배열을 순회하면서 각 학생의 영어 점수와 수학 점수를 더한 합계를 저장합니다.
등수 매기기
- 등수를 저장할 `ArrayList`를 선언합니다.
- 이중 반복문을 이용하여 각 학생의 점수 합계를 다른 학생들의 점수 합계와 비교하면서 등수를 매깁니다.
- 등수는 자신보다 높은 점수가 있을 때마다 증가시킵니다.
- 안쪽에 있는 반복문을 나올때 `rank`의 값을 `list`에 저장합니다.
결과 반환
- `list` 를 배열로 변환하여 최종 결과를 반환합니다.
'PS > 프로그래머스 입문 100제' 카테고리의 다른 글
[프로그래머스] LV.0 저주의 숫자 3 - 자바 [86/100] (0) | 2024.07.02 |
---|---|
[프로그래머스] LV.0 치킨 쿠폰 - 자바 [85/100] (0) | 2024.07.02 |
[프로그래머스] LV.0 유한소수 판별하기 - 자바 [83/100] (0) | 2024.07.01 |
[프로그래머스] LV.0 캐릭터의 좌표 - 자바 [82/100] (0) | 2024.07.01 |
[프로그래머스] LV.0 종이 자르기 - 자바 [81/100] (0) | 2024.07.01 |