개인 공부/알고리즘
[ 프로그래머스 ] 등수 매기기
킴도비
2024. 5. 28. 13:41
늘 제대로 생각하고 풀려고 하는데 머리가 잘 안돌아가는 느낌이다..!
이것도 뭔가 쉬워보였는데 막상 중복이 있는 등수 때문에 어렵게 생각했었는데 풀다가 그냥 다른 분의 소스코드를 참고했다..!
📔 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 문제 내용
공동 n등을 포함하여 등수 매기기
- 제한 조건
- 0 ≤ score[0], score[1] ≤ 100
- 1 ≤ score의 길이 ≤ 10
- score의 원소 길이는 2입니다.
- score는 중복된 원소를 갖지 않습니다.
📖 문제 풀이
일단 구조는 2개로 간단한데
1. 등수 평균 내서 새 배열에 넣기
2. 등수 매기기
1번은 엄청 쉬우니 생략하고, 2번부터 문제다.
등수를 어떻게 매기는 것인가가 중요하다. 한번 씩 다 도는 것이 중요하다고 생각했다.
처음에는 점수를 매기고 그에 따른 HashMap으로 할까 했는데 완전 잘못 생각한 방법이었다.
그래서 비교해서 등수를 매기는 방식을 선택! 조건을 잘 세워야 했다.
소스 코드 완성!
✅ 소스 코드
import java.util.*;
class Solution {
public int[] solution(int[][] score) {
double[] arr = new double[score.length];
for(int i = 0; i < score.length; i++){
arr[i] = (score[i][0] + score[i][1]) / 2.0;
}
int[] answer = new int[score.length];
for(int j = 0; j < score.length; j++) {
int order = 1;
for(int k = 0; k < score.length; k++) {
if(arr[j] < arr[k]) order++;
answer[j] = order;
}
}
return answer;
}
}