반응형
https://school.programmers.co.kr/learn/courses/30/lessons/118666
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr




풀이
선택지에 따라 8가지의 mbti에 점수를 입력해야하므로 HashMap 을 쓰면 간단하게 풀 수 있다.
HashMap 의 key 값에 8가지의 mbti 유형을 넣어주고 value 값을 모두 0으로 선언한다.
choice 길이 만큼 반복문을 태워서 switch 문을 이용해서 점수를 입력해주었다.
이후에 서로 상이한 mbti 끼리 점수를 비교해서 큰 값을 answer 변수에 차례대로 입력하면 된다.
import java.util.HashMap; class Solution { public String solution(String[] survey, int[] choices) { String answer = ""; char[] mbti = {'R', 'T', 'C', 'F', 'J', 'M', 'A', 'N'}; HashMap<Character, Integer> hm = new HashMap<>(); // HashMap에 mbti 8가지 입력 for (int i=0; i<mbti.length; i++) { hm.put(mbti[i], 0); } // 선택지에 따라 해당 mbti에 점수 입력 for (int i=0; i<choices.length; i++) { switch (choices[i]) { case 1: hm.put(survey[i].charAt(0), hm.get(survey[i].charAt(0)) + 3); break; case 2: hm.put(survey[i].charAt(0), hm.get(survey[i].charAt(0)) + 2); break; case 3: hm.put(survey[i].charAt(0), hm.get(survey[i].charAt(0)) + 1); break; case 4: break; case 5: hm.put(survey[i].charAt(1), hm.get(survey[i].charAt(1)) + 1); break; case 6: hm.put(survey[i].charAt(1), hm.get(survey[i].charAt(1)) + 2); break; case 7: hm.put(survey[i].charAt(1), hm.get(survey[i].charAt(1)) + 3); break; } } for (int i=0; i<mbti.length; i+=2) { if (hm.get(mbti[i]) >= hm.get(mbti[i+1])) { answer += mbti[i]; } else { answer += mbti[i+1]; } } return answer; } }
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스]JAVA - Level2. 기능 개발 (0) | 2022.08.30 |
---|---|
[프로그래머스]JAVA - Level3. 코딩 테스트 공부 (2) | 2022.08.29 |
[프로그래머스]JAVA - Level1. 신규 아이디 추천 (0) | 2022.08.23 |
[프로그래머스]JAVA - Level2. 두 큐 합 같게 만들기 (0) | 2022.08.22 |
[프로그래머스]JAVA - Level2. 124 나라의 숫자 (0) | 2022.07.10 |