문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/118666


제한 사항

입출력 예





풀이
import java.util.stream.*;
import java.util.HashMap;
import java.util.Arrays;
class Solution {
public String solution(String[] survey, int[] choices) {
String[] answer = new String[] {"RT", "CF", "JM", "AN"};
int[] score = new int[] { 3, 2, 1, 0, 1, 2, 3 };
HashMap<Character, Integer> surveyMap = new HashMap<>();
for (int i = 0; i < survey.length; i++) {
int select = 0;
if (choices[i] <= 3) select = 0;
else if (choices[i] >= 5) select = 1;
else continue;
Character c = survey[i].charAt(select);
if (surveyMap.containsKey(c))
surveyMap.put(c, surveyMap.get(c) + score[choices[i] - 1]);
else surveyMap.put(c, score[choices[i] - 1]);
}
return Arrays.stream(answer)
.map(i -> surveyMap.getOrDefault(i.charAt(0), 0) >= surveyMap.getOrDefault(i.charAt(1), 0)
? String.valueOf(i.charAt(0)) : String.valueOf(i.charAt(1)))
.collect(Collectors.joining());
}
}
후기
이게 왜 4점..? 코드 확인 여러번 하고 처음 제출했을 때 바로 맞았는데 4점 받았다. 4점짜리 문제는 아닌거 같은데... 점수 책정 기준이 어떻게 되는지 찾아봐야겠다. 그나저나 요즘 스트림 공부를 하고 있는데 뭔가 재밌다. 재밌어서 문제 풀 때 자꾸 스트림을 사용하고 싶어진다. ㅋㅋ
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
| [프로그래머스][JAVA][Lv. 1] 나머지가 1이 되는 수 찾기 (0) | 2023.07.07 |
|---|---|
| [프로그래머스][JAVA][Lv. 1] 신고 결과 받기 (0) | 2023.07.07 |
| [프로그래머스][JAVA][Lv. 1] 숫자 짝꿍 (0) | 2023.07.06 |
| [프로그래머스][JAVA][Lv. 1] 삼총사 (0) | 2023.07.05 |
| [프로그래머스][JAVA][Lv. 1] 콜라 문제 (0) | 2023.07.05 |