[프로그래머스] Lv.0 진료순서 정하기 .java

김엄지·2024년 4월 22일

알고리즘

목록 보기
53/90

🐤 목표

앞으로 매일 꾸준히 코딩테스트를 진행하면서 단계를 높여가보자.

문제 설명

외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.

제한사항

중복된 원소는 없습니다.
1 ≤ emergency의 길이 ≤ 10
1 ≤ emergency의 원소 ≤ 100

입출력의 예

문제 풀이

class Solution {
    public int[] solution(int[] emergency) {
        int[] answer = new int[emergency.length];
        
        for(int i = 0; i < emergency.length; i++) {
            for(int j = 0; j < emergency.length; j++) {
                if(emergency[i] < emergency[j]) {
                    answer[i]++;
                }
            }
            answer[i]++;
        }
        return answer;
    }
}

2중 반복문을 돌면서 배열의 값 중에서 낮은 배열에 1씩 더해준다.
1) 첫 번째 반복문은 모든 환자를 하나씩 확인하는 반복문. i는 현재 환자를 가리킴.
2) 두 번째 반복문은 현재 환자 i와 비교한 다른 환자를 선택하는 반복물. 다른 환자 j를 나타냄.
3) 조건문으로 현재 환자i의 응급도가 더 낮다면(다른 환자j의 응급도가 높다면), answer[i]++ 로 응급도가 높은 다른 환자가 한 명 더 있다고 더해준다.
4) 마지막 answer[i]++ 는 순서 배열의 모든 값에 +1 해준다. 시작이 1부터 하기 위함이다.

profile
나만의 무언가를 가진 프로그래머가 되자

0개의 댓글