반응형
2019 KAKAO BLIND RECRUITMENT 문제
프로그래머스: 실패율 Lv1
https://school.programmers.co.kr/learn/courses/30/lessons/42889
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
주석에 포함된 내용으로
1) arrayList Sorting을 확인
2) HashMap Value 값으로 내림차순 정렬을 해주어야한다.
import java.util.*;
// 2019 KAKAO BLIND RECRUITMENT > 실패율
// 예제를 확인 시, 순차적으로 스테이지를 깨야하기 때문에
// 실패율의 분모 값은 이전 실패수 만큼 감소
/*****************************************************
1. ArrayList Sorting 확인
2. HashMap Value 값으로 내림차순 정렬
******************************************************/
class Solution {
public int[] solution(int N, int[] stages) {
int[] answer = {};
int pCnt = stages.length;
HashMap<Integer, Float> map = new HashMap<>();
for(int i=1;i<=N;i++) {
int stagesStop = 0;
for(int j=0;j<stages.length;j++) {
if(stages[j] == i) {
stagesStop++;
}
}
float calc = 0;
if(pCnt != 0) {
calc = (float)stagesStop/pCnt;
}
pCnt -= stagesStop;
map.put(i, calc);
}
List<Integer> keys = new ArrayList<>(map.keySet());
Collections.sort(keys, (v2, v1) -> (map.get(v1).compareTo(map.get(v2))));
answer = keys.stream().mapToInt(i -> i).toArray();
return answer;
}
}
반응형