🔍문제
📊분석
- 유형의 점수 가 동일할시 사전순으로 빠른 유형을 가져간다.
- 1-3 까지는 비동의 유형에 5-7 까지는 동의유형에 점수를 추가한다.
- 비동의 유형은 Survey원소의 첫번째 캐릭터이며, 동의 유형은 Survey원소의 두번쨰 캐릭터다.
✏️ 풀이
import java.util.*;
class Solution {
public String solution(String[] survey, int[] choices) {
String answer = "RCJA";
Map<String, Integer> score = new HashMap<>();
score.put("R", 0);
score.put("T", 0);
score.put("C", 0);
score.put("F", 0);
score.put("J", 0);
score.put("M", 0);
score.put("A", 0);
score.put("N", 0);
for (int i = 0; i< survey.length; i++){
if(choices[i]< 4){
String key =Character.toString(survey[i].charAt(0));
score.put(key, score.get(key) + (4-choices[i]));
}
if(choices[i]>4){
String key =Character.toString(survey[i].charAt(1));
score.put(key, score.get(key) + (choices[i]-4));
}
}
// for (String keys : score.keySet()) {
// System.out.println(keys + ":"+ score.get(keys));
// }
if(score.get("T") > score.get("R")){
answer = answer.replace("R","T");
}
if(score.get("F") > score.get("C")){
answer = answer.replace("C","F");
}
if(score.get("M") > score.get("J")){
answer = answer.replace("J","M");
}
if(score.get("N") > score.get("A")){
answer = answer.replace("A","N");
}
return answer;
}
}
- answer을 동일한 점수일시 나오는 값으로 초기화 RCJA로 정해주었다
- 맵을 사용하여 각 유형별 점수를 0 으로 초기화 하였다
- for문을 돌며 점수가 1~3점 일시 비동의 유형의 점수, 5~7점 일시 동의 유형의 점수에 값을 추가해주었다.
- 마지막으로 if문을 사용하여 값이 높은 유형을 초기화된 answer 값에 수정하였다.
'알고리즘 문제 연습' 카테고리의 다른 글
[프로그래머스] JadenCase 문자열 (5) | 2024.10.07 |
---|---|
[프로그래머스] 바탕화면 정리 (0) | 2024.10.04 |
[프로그래머스] 숫자 짝꿍 (0) | 2024.09.20 |
[프로그래머스] 옹알이(2) (0) | 2024.09.03 |
[프로그래머스] 기사단원의 무기 (0) | 2024.08.27 |