프로그래머스 C# 진료 순서 정하기(자바, 파이썬)

2023. 6. 27. 11:10C# 알고리즘 코딩(프로그래머스)

public 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])  /// 제일 큰 것도 배열에 1이 하나 들어가야 되니까 등호까지 넣었다. 
                {
                    answer[i]++;
                }
            }
        }
        return answer;
    }
}

 

// 응급도 숫자가 가장 낮은 게 가장 마지막 순서(가장 큰 수)로 나오게 한다.

 

 

파이썬

////////

 

 

def solution(emergency):
    e = sorted(emergency,reverse=True)
    return [e.index(i)+1 for i in emergency]

 

 

def solution(emergency):
    return [sorted(emergency, reverse=True).index(e) + 1 for e in emergency]

 

 

자바

 

 

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;
    }
}

 

 

 

import java.util.Arrays;
import java.util.Comparator;
import java.util.stream.Collectors;

class Solution {
    public int[] solution(int[] e) {
        return Arrays.stream(e).map(i -> Arrays.stream(e).boxed().sorted(Comparator.reverseOrder()).collect(Collectors.toList()).indexOf(i) + 1).toArray();
    }
}