본문 바로가기
프로그래머스/[프로그래머스 - JAVA] Lv.0

[프로그래머스 - JAVA] 진료순서 정하기

by 코딩하는 흰둥이 2023. 3. 12.

 

  • 내 풀이
import java.util.Arrays;
import java.util.Collections;
import java.util.stream.Collectors;
import java.util.List;
class Solution {
    public int[] solution(int[] emergency) {
        int[] answer = {};

	// emergency 크기 만큼 answer 초기화
        answer = new int[emergency.length];

	// emergency의 값을 오름차순으로 정렬
        List<Integer> check = Arrays.stream(emergency).sorted().boxed().collect(Collectors.toList());
	
    	// 오름차순으로 정렬되어 있는 List를 거꾸로 변환
    	// 제일 큰 값이 우선순위가 높기 때문에 앞으로 보내주는 역할
        Collections.reverse(check);

	// emergency와 check의 값을 비교하며 값이 같으면 check의 index를 넣어줌. 
    	// for문이 0부터 시작하기 때문에 +1을 해준다.
        for (int i = 0; i < emergency.length; i++) {
            for (int j = 0; j < check.size(); j++) {
                if(emergency[i] == check.get(j)){
                    answer[i] = j+1;
                }
            }
        }

        return answer;
    }
}

 

 

  • 다른 사람 풀이
class Solution {
    public int[] solution(int[] emergency) {
        int[] answer = new int[emergency.length];

        for(int i = 0; i < answer.length; i++){
            if(answer[i] != 0){
                continue;
            }
            int idx = 1;
            for(int j = 0; j < answer.length; j++){
                if(emergency[i] < emergency[j]){
                    idx++;
                }
            }
            answer[i] = idx;
        }
        return answer;
    }
}




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

댓글