코딩테스트/프로그래머스
[2022 KAKAO TECH INTERNSHIP] 성격 유형 검사하기
의정부핵꿀밤
2022. 9. 3. 17:12
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/118666
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
우선 문제는 hashmap으로 각 유형별 점수를 survey 기반으로 측정하고 마지막으로 비교해서 answer를 return했따
level 1 문제라서 로직이 어렵지는 않았는데 실수를 해서 좀 걸렸따😥
내가 실수한 부분은 요거였따
hashmap의 값을 불러서 더해준 후 업데이트를 해야하는데, 냅다 그냥 업데이트만 해서 값이 덮여진 거였따
그 부분만 해결하니 잘 풀렸다~
자바 코드)
import java.util.HashMap;
class Solution {
public String solution(String[] survey, int[] choices) {
String answer = "";
HashMap<String, Integer> hashMap = new HashMap<>();
String[] key = {"R","T","C","F","J","M","A","N"};
for(int i = 0; i < key.length; i++){
hashMap.put(key[i], 0);
}
for(int i=0;i<survey.length;i++) {
int choice = choices[i];
if(choice == 4) {
continue;
}
if(choice<4) {
String s = String.valueOf(survey[i].charAt(0));
hashMap.put(s, hashMap.get(s) + (4-choice));
} else {
String s = String.valueOf(survey[i].charAt(1));
hashMap.put(s, hashMap.get(s) + (choice-4));
}
}
answer += getType("R", "T", hashMap);
answer += getType("C", "F", hashMap);
answer += getType("J", "M", hashMap);
answer += getType("A", "N", hashMap);
return answer;
}
public String getType(String a, String b, HashMap<String, Integer> hashMap) {
int num1 = hashMap.get(a);
int num2 = hashMap.get(b);
if(num1 == num2) {
return (a.compareTo(b)<0) ? a : b;
}
if(num1 > num2) {
return a;
} else {
return b;
}
}
}
728x90