2022 kakao tech internship 에서 진행한 코딩테스트 문제를 풀어보았다.
지문을 이해하는것부터 너무어려워서 .. 역시 갓카오 아무나못가는기업인가
코드를 작성하긴했지만 반례때문에 계속해서 수정해보아야할것같다.
링크
https://school.programmers.co.kr/learn/courses/30/lessons/118666
1. 풀이
- 성격유형 총 8가지를 map에 담아서 0의 값으로 초기화시켜둔다.
2. 첫번째 풀이 코드
import java.util.*;
class Solution {
public String solution(String[] survey, int[] choices) {
String answer = "";
Map<String, Integer> map = new HashMap<>();
String[] mbti = "RTCFJMAN".split("");
for(String s : mbti){
map.put(s, 0);
}
for(int i=0; i<survey.length; i++){
String sur = survey[i];
int cho = choices[i];
if(cho < 4){
map.put(String.valueOf(sur.charAt(0)), map.get(String.valueOf(sur.charAt(0))) + (4 - cho));
}else if(cho > 4){
map.put(String.valueOf(sur.charAt(1)), map.get(String.valueOf(sur.charAt(1))) + (4 + cho));
}
}
answer += map.get("R") >= map.get("T") ? "R" : "T";
answer += map.get("C") >= map.get("F") ? "C" : "F";
answer += map.get("J") >= map.get("M") ? "J" : "M";
answer += map.get("A") >= map.get("N") ? "A" : "N";
System.out.println(answer);
return answer;
}
}
3. 반례
ㅎㅏ.. 모르겟다 다음에 다시함
4. 다시 풀이코드작성
import java.util.*;
class Solution {
public String solution(String[] survey, int[] choices) {
String answer = "";
Map<String, Integer> map = new HashMap<>();
String[] mbti = "RTCFJMAN".split("");
// 초기점수를 각 유형별로 0씩 넣어놓음.
for(String s : mbti){
map.put(s, 0);
}
for(int i=0; i<survey.length; i++){
String sur = survey[i];
int cho = choices[i];
if(cho < 4){
map.put(String.valueOf(sur.charAt(0)), map.get(String.valueOf(sur.charAt(0))) + (4 - cho));
}else if(cho > 4){
map.put(String.valueOf(sur.charAt(1)), map.get(String.valueOf(sur.charAt(1))) + (cho - 4));
}
}
answer += map.get("R") >= map.get("T") ? "R" : "T";
answer += map.get("C") >= map.get("F") ? "C" : "F";
answer += map.get("J") >= map.get("M") ? "J" : "M";
answer += map.get("A") >= map.get("N") ? "A" : "N";
System.out.println(answer);
return answer;
}
}
문제의 요구사항에 5 이상의 선택점수는 5를 기준으로 초과한 점수만큼만 더해져야 한다. 그래서 (4 + cho) 가아니고 (cho - 4) 로 되어야 올바르게 계산이된다.
라고 GPT 가 도와줌.. 수고
'프로그래머스 코테 > 프로그래머스 Lv. 1' 카테고리의 다른 글
[프로그래머스 : Java] x만큼 간격이 있는 n개의 숫자 (0) | 2023.09.01 |
---|---|
[프로그래머스 : Java] 나머지가 1이 되는 수 찾기 (0) | 2023.06.08 |
[프로그래머스 : Java] 카드 뭉치 (0) | 2023.06.07 |
[프로그래머스 : Java] 바탕화면 정리 (0) | 2023.05.31 |
[프로그래머스 : Java] 달리기 경주 (1) | 2023.05.24 |