[JAVA] 배열 순위 알고리즘

·2022년 10월 25일
0

문제 설명

  • 프로그래머스 > 코딩테스트 연습 > 코딩테스트 입문 > 진료순서 정하기

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

해결방법

순위(Rank) 알고리즘

주어진 범위 데이터의 순위를 구하는 것

  1. 순위 보관할 배열을 만들어준다.
  2. 해당 배열에 순위를 넣어준다.

작성 코드

class Solution {
    public int[] solution(int[] emergency) {
    	
        // 순위 담을 배열 선언
        int[] answer = new int[emergency.length];
        
        // 배열 i값과 배열 나머지값 비교하며 순위 설정
        for (int i = 0; i < emergency.length; i++) {
        	answer[i] = 1;
        	for (int j = 0; j < emergency.length; j++) {
            	// 배열의 i값보다 큰 값이 있으면 i값에 해당하는 순위 배열의 i값을 1씩 올려준다.
        		if (emergency[i] < emergency[j]) {
        			answer[i] = answer[i] + 1;
        		}
        	}
        }
        return answer;
    }
}

참고: https://wakestand.tistory.com/595

profile
🎨

0개의 댓글