반응형
🔺 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
import java.util.*;
class Solution {
public String solution(String[] survey, int[] choices) {
StringBuilder sb = new StringBuilder();
Map<Character, Integer> mbti = new HashMap<>();
mbti.put('R', 0); mbti.put('T', 0);
mbti.put('C', 0); mbti.put('F', 0);
mbti.put('J', 0); mbti.put('M', 0);
mbti.put('A', 0); mbti.put('N', 0);
for(int i = 0 ; i < survey.length ; i++) {
if(choices[i] < 4) {
mbti.put(survey[i].charAt(0), mbti.get(survey[i].charAt(0)) + (4 - choices[i]));
}
else if(choices[i] > 4) {
mbti.put(survey[i].charAt(1), mbti.get(survey[i].charAt(1)) + (choices[i] - 4));
}
}
sb.append((mbti.get('R') >= mbti.get('T')) ? "R" : "T");
sb.append((mbti.get('C') >= mbti.get('F')) ? "C" : "F");
sb.append((mbti.get('J') >= mbti.get('M')) ? "J" : "M");
sb.append((mbti.get('A') >= mbti.get('N')) ? "A" : "N");
return sb.toString();
}
}
|
cs |
🧩 해결 아이디어
• HashMap
- 점수가 4보다 작다면, 4에서 해당 점수만큼 뺀 값을 누적해 더한다.
- 점수가 4보다 크다면, 해당 점수에서 4를 뺀 값을 누적해 더한다.
- R과 T 중 더 큰 값을, C와 F 중 더 큰 값을, J와 M 중 더 큰 값을, A와 N 중 더 큰 값을 결과값에 더하고 출력한다.
💬 느낀 점
HashMap 좋아...
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 2] [1차] 뉴스 클러스터링 (JAVA) (0) | 2023.11.26 |
---|---|
[프로그래머스/Lv. 1] 개인정보 수집 유효기간 (JAVA) (0) | 2023.11.25 |
[프로그래머스/Lv. 2] 주차 요금 계산 (JAVA) (0) | 2023.11.21 |
[프로그래머스/Lv. 2] 행렬 테두리 회전하기 (JAVA) (0) | 2023.11.21 |
[프로그래머스/Lv. 2] 두 큐 합 같게 만들기 (JAVA) (0) | 2023.11.12 |