https://school.programmers.co.kr/learn/courses/30/lessons/118666
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
public String solution(String[] survey, int[] choices) {
String answer = "";
Integer[][] arr = {{0, 0}, {1, 3}, {2, 2}, {3, 1}, {4, 0}, {5, 1}, {6, 2}, {7, 3}};
LinkedHashMap<Character, Integer> answers = new LinkedHashMap();
answers.put('R', 0);
answers.put('T', 0);
answers.put('C', 0);
answers.put('F', 0);
answers.put('J', 0);
answers.put('M', 0);
answers.put('A', 0);
answers.put('N', 0);
for (int i = 0; i < survey.length; i++) {
if (choices[i] < 4) {
answers.put(survey[i].charAt(0), answers.getOrDefault(survey[i].charAt(0), 0) + arr[choices[i]][1]);
} else if (choices[i] > 4) {
answers.put(survey[i].charAt(1), answers.getOrDefault(survey[i].charAt(1), 0) + arr[choices[i]][1]);
}
}
StringBuilder result = new StringBuilder();
// 1번 지표 (R, T)
result.append(answers.get('R') >= answers.get('T') ? 'R' : 'T');
// 2번 지표 (C, F)
result.append(answers.get('C') >= answers.get('F') ? 'C' : 'F');
// 3번 지표 (J, M)
result.append(answers.get('J') >= answers.get('M') ? 'J' : 'M');
// 4번 지표 (A, N)
result.append(answers.get('A') >= answers.get('N') ? 'A' : 'N');
System.out.println(answers);
return result.toString();
}
📍포인트
1. 누적 값을 처리할 때 hashmap으로 처리.
2. value가 같을 때 key의 사전순 비교를 어떻게 할지 고민 필요.
'코딩테스트' 카테고리의 다른 글
[코딩테스트(Java)] 프로그래머스 72411 메뉴 리뉴얼 (0) | 2025.03.20 |
---|---|
[코딩테스트(Java)] 프로그래머스 150370 개인정보 수집 유효기간 (1) | 2025.03.17 |
[코딩테스트(Java)] 프로그래머스 67256 키패드 누르기 (0) | 2025.03.15 |
[코딩테스트(Java)] 프로그래머스 64061 크레인 인형뽑기 게임 (0) | 2025.03.14 |
[코딩테스트(Java)] 프로그래머스 81301 숫자 문자열과 영단어 (0) | 2025.03.13 |