반응형
https://school.programmers.co.kr/learn/courses/30/lessons/118666?language=java
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
import java.util.HashMap;
class Solution {
public String solution(String[] survey, int[] choices) {
String answer = "";
HashMap<String, Integer> map = new HashMap<>();
// 1. survey 입력된 string 나누고 choices 5이상이면 뒤에꺼 3이하면 앞에꺼 4면 통과 + 점수 더해서 hash 넣기
for(int i=0; i<survey.length; i++){
String first = survey[i].substring(0,1);
String second = survey[i].substring(1,2);
if(choices[i] == 1){
map.put(first, map.getOrDefault(first, 0)+3);
} else if(choices[i] == 2){
map.put(first, map.getOrDefault(first, 0)+2);
} else if(choices[i] == 3){
map.put(first, map.getOrDefault(first, 0)+1);
} else if(choices[i] == 5){
map.put(second, map.getOrDefault(second, 0)+1);
} else if(choices[i] == 6){
map.put(second, map.getOrDefault(second, 0)+2);
} else if(choices[i] == 7){
map.put(second, map.getOrDefault(second, 0)+3);
}
}
// 2. 각 지표 중에 더 많은 걸 선택
int rValue = map.getOrDefault("R",0);
int tValue = map.getOrDefault("T",0);
int cValue = map.getOrDefault("C",0);
int fValue = map.getOrDefault("F",0);
int jValue = map.getOrDefault("J",0);
int mValue = map.getOrDefault("M",0);
int aValue = map.getOrDefault("A",0);
int nValue = map.getOrDefault("N",0);
if(rValue >= tValue){
answer += "R";
} else {
answer += "T";
}
if(cValue >= fValue){
answer += "C";
} else {
answer += "F";
}
if(jValue >= mValue){
answer += "J";
} else {
answer += "M";
}
if(aValue >= nValue){
answer += "A";
} else {
answer += "N";
}
return answer;
}
}반응형
'코딩테스트' 카테고리의 다른 글
| [프로그래머스/Java] 문자열 내림차순으로 배치하기 (StringBuilder 개념) (0) | 2026.07.07 |
|---|---|
| [프로그래머스/Java] 신규 아이디 추천 (문자열 활용 여러가지) (0) | 2026.07.06 |
| [프로그래머스/Java] 전화번호 목록 (HashMap) (0) | 2026.07.06 |
| [프로그래머스/Java] 폰켓몬 (HashSet) (0) | 2026.07.05 |
| [프로그래머스 / Java] 완주하지 못한 선수 (HashMap) (0) | 2026.07.05 |