반응형
https://school.programmers.co.kr/learn/courses/30/lessons/118666
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
선택지에 따라 8가지의 mbti에 점수를 입력해야하므로 HashMap 을 쓰면 간단하게 풀 수 있다.
HashMap 의 key 값에 8가지의 mbti 유형을 넣어주고 value 값을 모두 0으로 선언한다.
choice 길이 만큼 반복문을 태워서 switch 문을 이용해서 점수를 입력해주었다.
이후에 서로 상이한 mbti 끼리 점수를 비교해서 큰 값을 answer 변수에 차례대로 입력하면 된다.
import java.util.HashMap;
class Solution {
public String solution(String[] survey, int[] choices) {
String answer = "";
char[] mbti = {'R', 'T', 'C', 'F', 'J', 'M', 'A', 'N'};
HashMap<Character, Integer> hm = new HashMap<>();
// HashMap에 mbti 8가지 입력
for (int i=0; i<mbti.length; i++) {
hm.put(mbti[i], 0);
}
// 선택지에 따라 해당 mbti에 점수 입력
for (int i=0; i<choices.length; i++) {
switch (choices[i]) {
case 1:
hm.put(survey[i].charAt(0), hm.get(survey[i].charAt(0)) + 3);
break;
case 2:
hm.put(survey[i].charAt(0), hm.get(survey[i].charAt(0)) + 2);
break;
case 3:
hm.put(survey[i].charAt(0), hm.get(survey[i].charAt(0)) + 1);
break;
case 4:
break;
case 5:
hm.put(survey[i].charAt(1), hm.get(survey[i].charAt(1)) + 1);
break;
case 6:
hm.put(survey[i].charAt(1), hm.get(survey[i].charAt(1)) + 2);
break;
case 7:
hm.put(survey[i].charAt(1), hm.get(survey[i].charAt(1)) + 3);
break;
}
}
for (int i=0; i<mbti.length; i+=2) {
if (hm.get(mbti[i]) >= hm.get(mbti[i+1])) {
answer += mbti[i];
} else {
answer += mbti[i+1];
}
}
return answer;
}
}
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스]JAVA - Level2. 기능 개발 (0) | 2022.08.30 |
---|---|
[프로그래머스]JAVA - Level3. 코딩 테스트 공부 (2) | 2022.08.29 |
[프로그래머스]JAVA - Level1. 신규 아이디 추천 (0) | 2022.08.23 |
[프로그래머스]JAVA - Level2. 두 큐 합 같게 만들기 (0) | 2022.08.22 |
[프로그래머스]JAVA - Level2. 124 나라의 숫자 (0) | 2022.07.10 |