728x90
https://school.programmers.co.kr/learn/courses/30/lessons/118666
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
우선 문제는 hashmap으로 각 유형별 점수를 survey 기반으로 측정하고 마지막으로 비교해서 answer를 return했따
level 1 문제라서 로직이 어렵지는 않았는데 실수를 해서 좀 걸렸따😥
내가 실수한 부분은 요거였따
hashmap의 값을 불러서 더해준 후 업데이트를 해야하는데, 냅다 그냥 업데이트만 해서 값이 덮여진 거였따
그 부분만 해결하니 잘 풀렸다~
자바 코드)
import java.util.HashMap;
class Solution {
public String solution(String[] survey, int[] choices) {
String answer = "";
HashMap<String, Integer> hashMap = new HashMap<>();
String[] key = {"R","T","C","F","J","M","A","N"};
for(int i = 0; i < key.length; i++){
hashMap.put(key[i], 0);
}
for(int i=0;i<survey.length;i++) {
int choice = choices[i];
if(choice == 4) {
continue;
}
if(choice<4) {
String s = String.valueOf(survey[i].charAt(0));
hashMap.put(s, hashMap.get(s) + (4-choice));
} else {
String s = String.valueOf(survey[i].charAt(1));
hashMap.put(s, hashMap.get(s) + (choice-4));
}
}
answer += getType("R", "T", hashMap);
answer += getType("C", "F", hashMap);
answer += getType("J", "M", hashMap);
answer += getType("A", "N", hashMap);
return answer;
}
public String getType(String a, String b, HashMap<String, Integer> hashMap) {
int num1 = hashMap.get(a);
int num2 = hashMap.get(b);
if(num1 == num2) {
return (a.compareTo(b)<0) ? a : b;
}
if(num1 > num2) {
return a;
} else {
return b;
}
}
}
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[2022 KAKAO BLIND RECRUITMENT] 신고 결과 받기 (0) | 2022.09.06 |
---|---|
[Level 2] 빛의 경로 사이클 - JAVA (0) | 2022.09.05 |
[2021 카카오 채용연계형 인턴십] 거리두기 확인하기 - JAVA (0) | 2022.09.02 |
[SQL] JOIN 문제 (0) | 2022.09.01 |
[연습문제] 콜라츠 추측 (0) | 2022.08.21 |
댓글