Skip to main content

118666 - 성격 유형 검사하기

info

풀이 키워드

스포주의

해시


풀이 코드

info
  • 메모리: 96600 KB
  • 시간: 12 ms
import java.util.*;

class Solution {
public String solution(String[] survey, int[] choices) {
Map<String, Integer> typeMap = new HashMap<>();
String types = "RTCFJMAN";
for (char ch : types.toCharArray())
typeMap.put(String.valueOf(ch), 0);

// calc score
for (int i = 0; i < survey.length; ++i) {
switch (choices[i]) {
case 1: typeMap.merge("" + survey[i].charAt(0), 3, Integer::sum); break;
case 2: typeMap.merge("" + survey[i].charAt(0), 2, Integer::sum); break;
case 3: typeMap.merge("" + survey[i].charAt(0), 1, Integer::sum); break;
case 4: break;
case 5: typeMap.merge("" + survey[i].charAt(1), 1, Integer::sum); break;
case 6: typeMap.merge("" + survey[i].charAt(1), 2, Integer::sum); break;
case 7: typeMap.merge("" + survey[i].charAt(1), 3, Integer::sum); break;
}
}

// get type
String ans = "";
ans += (typeMap.get("R") < typeMap.get("T")) ? "T" : "R";
ans += (typeMap.get("C") < typeMap.get("F")) ? "F" : "C";
ans += (typeMap.get("J") < typeMap.get("M")) ? "M" : "J";
ans += (typeMap.get("A") < typeMap.get("N")) ? "N" : "A";

return ans;
}
}

풀이 해설

해시맵으로 점수 합산하고 하드코딩 처리했다... 끝.


메모

  • 카카오 문제 치고 많이 쉬움. 3년만 더 일찍 태어날걸
  • get put merge 다 쓰여서 자바 해싱 까먹었을때 복습하기에 나쁘지 않음
  • String.valueOf(ch) <- 이거 생각 안나면 그냥 concat 쓰셈