From 0942c509f933b075e1d5382e12fbaa900c78e055 Mon Sep 17 00:00:00 2001 From: Wonseok Lee <67217686+wonseokLee97@users.noreply.github.com> Date: Sat, 22 Oct 2022 17:32:33 +0900 Subject: [PATCH] =?UTF-8?q?Create=20=EC=84=B1=EA=B2=A9=EC=9C=A0=ED=98=95?= =?UTF-8?q?=EA=B2=80=EC=82=AC=ED=95=98=EA=B8=B0.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\354\202\254\355\225\230\352\270\260.java" | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 "\354\235\264\354\233\220\354\204\235/week8/\354\204\261\352\262\251\354\234\240\355\230\225\352\262\200\354\202\254\355\225\230\352\270\260.java" diff --git "a/\354\235\264\354\233\220\354\204\235/week8/\354\204\261\352\262\251\354\234\240\355\230\225\352\262\200\354\202\254\355\225\230\352\270\260.java" "b/\354\235\264\354\233\220\354\204\235/week8/\354\204\261\352\262\251\354\234\240\355\230\225\352\262\200\354\202\254\355\225\230\352\270\260.java" new file mode 100644 index 0000000..15ec533 --- /dev/null +++ "b/\354\235\264\354\233\220\354\204\235/week8/\354\204\261\352\262\251\354\234\240\355\230\225\352\262\200\354\202\254\355\225\230\352\270\260.java" @@ -0,0 +1,64 @@ +package com.ssafy._2022_KAKAO_TEST; + +import java.util.HashMap; + +// 소요시간 : 30분 +public class 성격유형검사하기 { + public static void main(String[] args) { + String[] survey = {"TR", "RT", "TR"}; + int[] choices = {7, 1, 3}; + + String solution = solution(survey, choices); + System.out.println(solution); + } + + public static String solution(String[] survey, int[] choices) { + char[] mbti = {'R', 'T', 'C', 'F', 'J', 'M', 'A', 'N'}; + int[] score = {-3, -2, -1, 0, 1, 2, 3}; + HashMap result = new HashMap<>(); + + // 성격유형 해쉬맵 초기화 + for (char c : mbti) { + result.put(c, 0); + } + + for (int i = 0; i < survey.length; i++) { + char[] c = survey[i].toCharArray(); + int choice = choices[i] - 1; + char disagree = c[0]; + char agree = c[1]; + + int get = score[choice]; + + // 비동의 + if (get < 0) { + // 점수 추가 + result.put(disagree, result.get(disagree) + (get * -1)); + } else if (get > 0) { // 동의 + result.put(agree, result.get(agree) + get); + } + } + + String answer = ""; + for (int i = 0; i < mbti.length; i += 2) { + char c1 = mbti[i]; + char c2 = mbti[i + 1]; + int case1 = result.get(c1); + int case2 = result.get(c2); + + if (case1 < case2) { + answer += c2; + } else if (case1 > case2) { + answer += c1; + } else { // 사전순으로 + int min = Math.min(c1, c2); + answer += (char) min; + } + } + return answer; + } +} + +// 1. 성격 유형을 분리하여 동의, 비동의 경우를 구한다. +// 2. 선택이 3 이하일 경우 비동의, 4일 경우 모르겠음, 5 이상일 경우 동의 +// 2-1.