ALGORITHM/PROGRAMMERS

[프로그래머스] 성격 유형 검사하기 (2022 KAKAO TECH INTERNSHIP)

0298 2022. 9. 14. 22:51

https://school.programmers.co.kr/learn/courses/30/lessons/118666

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

2022-09-14


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Solution {
    public String solution(String[] survey, int[] choices) {
        String answer = "";
        String mbti = "RTCFJMAN";
        int[] arr = new int[mbti.length()];
 
        for(int i = 0; i < survey.length; i++) {
            char disagree = survey[i].charAt(0);
            char agree = survey[i].charAt(1);
            int value = choices[i];
 
            if(value >= 5) {
                value -= 4;
                arr[mbti.indexOf(agree)] += value;
            }
            else if(value < 4) {
                if(value != 2) value = value == 3 ? 1 : 3;
                arr[mbti.indexOf(disagree)] += value;
            }
        }
 
        for(int i = 0; i < arr.length; i+=2) {
            if(arr[i] >= arr[i+1]) answer += mbti.charAt(i);
            else answer += mbti.charAt(i+1);
        }
 
 
        return answer;
    }
}
cs

 

#문제풀이

가능한 성격 유형을 string에 미리 넣어 놓는다. 해당 값들을 indexOf로 찾아서 arr 배열에서 각 유형 별 값을 관리할 수 있도록 했다.

비동의/동의 나눠서 값을 더했다.

 

마지막에 각각 성격 유형 중 더 큰 값을 출력한다.