IT/Programmers

[Programmers/코딩테스트 연습] 진료순서 *****stream 예제 다시 볼 것*****

안선생 Dr.Ahn 2022. 12. 4. 07:16
728x90
반응형

진료순서 정하기 (Java)

class Solution {
    public int[] solution(int[] emergency) {
        
        int[] answer = new int[emergency.length];
        
        for (int i = 0; i < emergency.length; i++) {
            answer[i] = 1;      
            for(int j = 0 ; j < emergency.length ; j++) {
                if(emergency[i] < emergency[j]) answer[i]++;
            }
        }
        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();
    }
}

1) boxed() : int to stream

2) sorted(Comparator.reverseOrder()) : 내림차순 정렬

 cf. sorted() : 오름차순 정렬

3) collect(Collectors.toList()) : stream 요소를 list 자료형으로 변환

 cf. stream.collect() : stream 요소를 다른 자료형으로 변환

 cf. Collectors.toSet() : set 자료형으로 변환

4) indexOf(i) : list에서 해당 요소가 나타나는 index 반환 (없으면 -1)

?

모르겠다 이건 진짜  에이씨 다시 공부하기

728x90
반응형