-
[프로그래머스] 성격 유형 검사하기코딩테스트 2025. 4. 3. 00:23반응형
https://school.programmers.co.kr/learn/courses/30/lessons/118666
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제
{ "RT", "TR", "FC", "CF", "MJ", "JM", "AN", "NA" } 요소로 구성된 설문조사 항목 survey 와
1~7점으로 구성된 답안들 choices 가 주어진다.
성격 유형은 [[R, T], [C, F], [J, M], [ A, N ]] 로 이루어져 있다. choices 와 survey를 바탕으로 성격 유형을 반환하시오.
제한사항
1. survey는 두글자로 이루어져있음.
왼쪽 글자는 choice < 4 일때, 각각 4에서 멀어질 수록 1점씩 더 받는다.
오른쪽 글자는 choice > 4일때, 4에서 멀어질 수록 1점씩 더 받는다.
2. 두 유형의 점수가 같을 경우, 사전순으로 더 빠른 유형을 선택한다.
ex) R = 0; T = 0 ? R접근
결산결과를 저장할 이차배열 int[][]result에 각 항목에 대한 점수를 합산하고, 꺼내서 판별하는 코드를 작성했다.
값을 저장할 때 어느 곳에 넣어야 할지 지정하기 위해 Map 에 별도로 인덱스 정보를 기입하였다.public static String solution(String[] survey, int[] choices) { /* * result = [[R, T], [C, F], [J, M], [A, N]] * */ String temp = "RTCFJMAN"; Map<Character, Integer[]> map = new HashMap<>(); // 문자별로 배열 인덱스와 매칭할 맵 for(int i = 0; i < temp.length(); i++){ char k = temp.charAt(i); int h = i / 2; int w = i % 2; Integer[] v = new Integer[]{h, w}; map.put(k, v); } int[][] result = new int[4][2]; //결산 결과를 저장하고 유형 판별용. for(int i= 0; i < survey.length; i ++){ char leftKey = survey[i].charAt(0); char rightKey = survey[i].charAt(1); int choice = choices[i]; int h = 0; int w = 0; if(choice < 4){ //왼쪽. 1 : +3 2 : +2 3 : +1 int add = 4 - choice; h = map.get(leftKey)[0]; w = map.get(leftKey)[1]; result[h][w] += add; } else if(choice > 4){ int add = choice - 4; //오른쪽 h = map.get(rightKey)[0]; w = map.get(rightKey)[1]; result[h][w] += add; } } String answer = ""; char[][] keyA = new char[][]{{'R', 'T'}, {'C', 'F'}, {'J','M'}, {'A', 'N'}}; //RT CF JM AN for(int i = 0; i < result.length; i++){ if(result[i][0] == result[i][1]){ char add = keyA[i][0]; answer += add; continue; } if(result[i][0] > result[i][1]){ char add = keyA[i][0]; answer += add; } else { char add = keyA[i][1]; answer += add; } } return answer; }
반응형'코딩테스트' 카테고리의 다른 글
[프로그래머스] 나머지가 1이 되는 수 찾기 자바 제곱근 활용 (0) 2025.04.03 [프로그래머스] 신고 결과 받기 자바. Set 활용 중복제거 (0) 2025.04.03 [프로그래머스] 숫자 짝꿍 (0) 2025.04.02 [프로그래머스] 삼총사 자바 (0) 2025.04.02 [프로그래머스] 콜라 문제 자바 (0) 2025.04.02