728x90
성격 유형 검사하기
https://school.programmers.co.kr/learn/courses/30/lessons/118666



풀이
`survey` + `score`
- `choice`: 1 -> 앞 문자 +3
- `choice`: 2 -> 앞 문자 +2
- `choice`: 3 -> 앞 문자 +1
- `choice`: 4 -> 0
- `choice`: 5 -> 뒤 문자 +1
- `choice`: 6 -> 뒤 문자 +2
- `choice`: 7 -> 뒤 문자 +3
ex. survey = "AN" / choice = 2 -> 앞 문자(R) +2점
for (int i = 0; i < survey.length; i++) {
char first = survey[i].charAt(0);
char second = survey[i].charAt(1);
int choice = choices[i];
if (choice < 4) HM.put(first, HM.get(first) + (4 - choice));
else HM.put(second, HM.get(second) + (choice - 4));
}
코드
import java.util.*;
class Solution {
public String solution(String[] survey, int[] choices) {
StringBuilder sb = new StringBuilder();
Map<Character, Integer> HM = new HashMap<>();
for (char c : new char[]{'R','T','C','F','J','M','A','N'}) {
HM.put(c, 0);
}
for (int i = 0; i < survey.length; i++) {
char first = survey[i].charAt(0);
char second = survey[i].charAt(1);
int choice = choices[i];
if (choice < 4) HM.put(first, HM.get(first) + (4 - choice));
else HM.put(second, HM.get(second) + (choice - 4));
}
sb.append(HM.get('R') >= HM.get('T') ? 'R' : 'T');
sb.append(HM.get('C') >= HM.get('F') ? 'C' : 'F');
sb.append(HM.get('J') >= HM.get('M') ? 'J' : 'M');
sb.append(HM.get('A') >= HM.get('N') ? 'A' : 'N');
return sb.toString();
}
}728x90
반응형
'✏️ > Programmers' 카테고리의 다른 글
| [프로그래머스/Lv.2] PCCP - 퍼즐 게임 챌린지 (Java) (0) | 2026.02.12 |
|---|---|
| [프로그래머스/Lv.1] 개인정보 수집 유효기간 (Java) (0) | 2026.02.12 |
| [프로그래머스/Lv.1] 비밀지도 (Java) (0) | 2026.02.08 |
| [프로그래머스/Lv.1] 크레인 인형뽑기 (Java) (0) | 2026.02.08 |
| [프로그래머스/Lv.1] 키패드 누르기 (Java) (0) | 2026.02.04 |