-
카카오 블라인드 2019 실패율 [자바 코테 준비 3일차]CodeingTestPrac/Java Coding Test 2023. 5. 5. 19:59
자바 코드 먼저 보자
void kakao19Final_test() { //given int N = 5; int[] stages = {2, 1, 2, 6, 2, 4, 3, 3}; Arrays.sort(stages); // Arrays.stream(stages).forEach(System.out::println); System.out.println(Arrays.stream(stages) .mapToObj(Integer::toString) .collect(Collectors.joining(" "))); Map<Integer,Integer> clearStage = new HashMap<>(); for(int item : stages){ clearStage.put(item,clearStage.getOrDefault(item,0)+1); } System.out.println(clearStage); double[] ratio = new double[N+1]; int counted = 0; for(int i = 1 ; i <N+1 ; i++) { int item = clearStage.getOrDefault(i,0); if(item != 0 && (stages.length - counted) != 0 ){ ratio[i] = (double) item /(stages.length - counted); counted += item; } } System.out.println(Arrays.stream(ratio) .mapToObj(Double::toString) .collect(Collectors.joining(" "))); List<Integer> anar = new ArrayList(); for(int i = 1 ;i<N+1;i++){ anar.add(i); } Collections.sort(anar,(a,b)->Double.compare(ratio[b],ratio[a])); int[] answer = anar.stream().mapToInt(i->i).toArray(); System.out.println(answer); }
준비를 하면서 느낀것이 자료 구조 Map 을 잘 모르겠으면 class 를 프로그래머스 에서 생성후 override 를 하는 방식도 있지만 비추이다.
자료형 doble 이 float 보다 크다.
Arrays.stream 은 double, int ,long 만 제공을 하니 참고하자.
완벽한데 시간 초과가 나면 collection 으로 전환하자.
'CodeingTestPrac > Java Coding Test' 카테고리의 다른 글
코테 연습[자바 코테 준비 8일차] bfs 완탐(1) (0) 2023.07.03 코테 연습[자바 코테 준비 6일차] (0) 2023.06.30 구현 쉽지만 수학 문제 퀴즈 같은 구현[자바 코테 준비 5일차] (0) 2023.06.28 N 의 약수 모두 더하기 [자바 코테 준비 4일차] (0) 2023.06.28 Java 코테준비 2일차 (0) 2023.04.28