문제
https://school.programmers.co.kr/learn/courses/30/lessons/120835
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
우선순위를 나타내는 rank를 1로 선언한다.
배열을 반복해서 탐색하며 가장 큰 응급도와 해당 인덱스를 찾는다.
가장 큰 값을 찾았다면 해당 위치에 현재 순위를 저장한다.
answer[idx] = rank++;
그리고 이미 순위를 매긴 환자가 다시 선택되지 않도록 값을 0으로 변경한다.
emergency[idx] = 0;
문제에서 응급도는 모두 자연수이므로 0으로 바꾸면 다음 탐색에서 가장 큰 값으로 선택되지 않는다.
코드
class Solution {
public int[] solution(int[] emergency) {
int[] answer = new int[emergency.length];
int rank=1;
for(int j=0;j<emergency.length;j++){
int max=0, idx=-1;
for(int i=0;i<emergency.length;i++){
if(max<emergency[i]){
max=emergency[i];
idx=i;
}
}
answer[idx]=rank++;
emergency[idx]=0;
}
return answer;
}
}'PS > Programmers' 카테고리의 다른 글
| [프로그래머스 Lv.0] 숨어있는 숫자의 덧셈(2)(Java) (0) | 2026.07.23 |
|---|---|
| [프로그래머스 Lv.0] 모스부호(1)(Java) (0) | 2026.07.22 |
| [프로그래머스 Lv.0] k의 개수(Java) (0) | 2026.07.20 |
| [프로그래머스 Lv.0] 중복된 문자 제거(Java) (0) | 2026.07.19 |
| [프로그래머스 Lv.0] 최빈값 구하기(Java) (0) | 2026.07.18 |
댓글