알고리즘 공부 및 문제 풀이/백준(BOJ)
[pro] 프로그래머스 level1 118666 성격 유형 검사 (Java)
yoonjiy
2022. 12. 15. 18:06
[문제]
https://school.programmers.co.kr/learn/courses/30/lessons/118666
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[풀이]
단순 구현. Map에 유형과 점수를 key, value로 저장하도록 했다.
[코드]
import java.util.*;
class Solution {
public String solution(String[] survey, int[] choices) {
String answer = "";
String[][] indicators = {
{"R", "T"},
{"C", "F"},
{"J", "M"},
{"A", "N"}
};
int[] score = {3, 2, 1, 0, 1, 2, 3};
Map<String, Integer> map = new HashMap<>();
//검사자의 성격 유형 검사 결과를 지표 번호 순서대로 return
//점수 계산
for(int i=0; i<survey.length; i++){
String s = survey[i];
if(choices[i] < 4){
String temp = String.valueOf(s.charAt(0));
map.put(temp, map.getOrDefault(temp, 0)+score[choices[i]-1]);
}
else if(choices[i] > 4){ //동의
String temp = String.valueOf(s.charAt(1));
map.put(temp, map.getOrDefault(temp, 0)+score[choices[i]-1]);
}
}
//성격유형 검사
for(int i=0; i<4; i++){
if(map.getOrDefault(indicators[i][0], 0) >= map.getOrDefault(indicators[i][1], 0)){
answer += indicators[i][0];
}
else answer += indicators[i][1];
}
return answer;
}
}