# 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/118666
목차
내 풀이
import java.util.*;
class Solution {
public String solution(String[] survey, int[] choices) {
StringBuilder answer = new StringBuilder();
Map<String, Integer> typeCountMap = new HashMap<>();
String[] types = {"R", "T", "C", "F", "J", "M", "A", "N"};
int[] scores = {3, 2, 1, 0, 1, 2, 3};
// 1. 유형 카운트 초기화
for (String type : types) {
typeCountMap.put(type, 0);
}
for (int i=0; i<survey.length; i++) {
String[] type = survey[i].split("");
int choice = choices[i];
int score = scores[choice-1];
int typeI = choice < 4 ? 0 : 1;
typeCountMap.put(type[typeI], typeCountMap.get(type[typeI]) + score);
}
// 2. 유형 선택
for (int i=0; i<types.length; i=i+2) {
String type1 = types[i];
String type2 = types[i+1];
int type1Count = typeCountMap.get(type1);
int type2Count = typeCountMap.get(type2);
if (type1Count >= type2Count) {
answer.append(type1);
} else {
answer.append(type2);
}
}
return answer.toString();
}
}
프로그래머스 다른사람 풀이 참고 2 (Collections.sort) (altdmfk , 안효근 , leehj5898@gmail.com / 링크)
import java.util.HashMap;
class Solution {
public String solution(String[] survey, int[] choices) {
String answer = "";
char [][] type = {{'R', 'T'}, {'C', 'F'}, {'J', 'M'}, {'A', 'N'}};
int [] score = {0, 3, 2, 1, 0, 1, 2, 3};
HashMap<Character, Integer> point = new HashMap<Character, Integer>();
// 점수 기록할 배열 초기화
for (char[] t : type) {
point.put(t[0], 0);
point.put(t[1], 0);
}
// 점수 기록
for (int idx = 0; idx < choices.length; idx++){
if(choices[idx] > 4){
point.put(survey[idx].charAt(1), point.get(survey[idx].charAt(1)) + score[choices[idx]]);
} else {
point.put(survey[idx].charAt(0), point.get(survey[idx].charAt(0)) + score[choices[idx]]);
}
}
// 지표 별 점수 비교 후 유형 기입
for (char[] t : type) {
answer += (point.get(t[1]) <= point.get(t[0])) ? t[0] : t[1];
}
return answer;
}
}
'알고리즘 문제풀이 > 프로그래머스 Level 1' 카테고리의 다른 글
[2019 카카오 개발자 겨울 인턴십/Java] 크레인 인형뽑기 게임 (0) | 2023.07.26 |
---|---|
[2023 KAKAO BLIND RECRUITMENT/Java] 개인정보 수집 유효기간 ★ (0) | 2023.07.24 |
[2018 KAKAO BLIND RECRUITMENT[1차]/Java] 비밀지도 (0) | 2023.07.23 |
[2020 카카오 인턴십/Java] 키패드 누르기 (0) | 2023.07.21 |
[2019 KAKAO BLIND RECRUITMENT/Java] 실패율 (0) | 2023.07.20 |