Deep_Dev

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

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 


๊ฐ ์œ ํ˜•์„ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ด์— ๋„ฃ๊ณ , ๊ฐ ์œ ํ˜•๋ณ„๋กœ ์ ์ˆ˜ํŒ์„ ๊ณ„์‚ฐํ•œ ๋ฐฐ์—ด๋„ ์ƒ์„ฑํ•ด์ฃผ๊ณ 

choices์˜ ๊ฐ’๋“ค์€ ๋ฐ”๋กœ index๋กœ ๊ณ„์‚ฐํ•ด์„œ ์ ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. ( ์ ์ˆ˜ ๋ฐฐ์—ด score๋„ ์ƒ์„ฑ )

 

2๊ฐ€์ง€ ์œ ํ˜•๋งˆ๋‹ค ๊ณ„์† ๋น„๊ตํ•˜๋‹ˆ๊นŒ, 

์™ผ์ชฝ์˜ ์œ ํ˜•์˜ ์ ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ• ๋–„๋Š” 1~3์ ์ผ๋•Œ๊ณ , ์˜ค๋ฅธ์ชฝ์œ ํ˜•์˜ ์ ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ• ๋–„๋Š” 5~7์ ์ด๋‹ˆ ๊ทธ ๋‘๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋‚˜๋ˆ„์–ด์„œ

ํ˜„์žฌ ์ถ”๊ฐ€๋  ์œ ํ˜•์˜ calc์˜ index๋ฅผ ์ฐพ์•„์„œ calc์ ์ˆ˜ํŒ์— score์ ์ˆ˜๋ฅผ ํ† ๋Œ€๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ๋ชจ๋“  ์œ ํ˜•์˜ ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ( user๋ฐฐ์—ด๊ณผ calc๋ฐฐ์—ด์˜ index๊ฐ’์„ ๋˜‘๊ฐ™๊ฒŒ ์„ค์ •ํ•œ ๊ฒƒ์ž„ )

 

๊ทธ๋ฆฌ๊ณ  answer์— ์ถ”๊ฐ€๋  ์œ ํ˜•์˜ ์ˆœ์„œ๋Š” ๊ณ ์ •์ ์ด๋‹ˆ

์œ ํ˜•๋ณ„ ์ ์ˆ˜๋œ ๊ณ„์‚ฐ calc์—์„œ index0๋ถ€ํ„ฐ 2๊ฐœ์˜ ๊ฐ’๋ผ๋ฆฌ ๊ณ„์† ๋น„๊ต๋ฅผํ•ด์„œ ์˜ค๋ฅธ์ชฝ ์œ ํ˜• ์ ์ˆ˜๊ฐ€ ๋” ํฌ๋ฉด ํ•ด๋‹น ์œ ํ˜•์„ index ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™€์„œ

์ถ”๊ฐ€ํ•ด์ค€๋‹ค. ์™ผ์ชฝ์œ ํ˜•์„ ์ถ”๊ฐ€ํ•˜๋Š”๊ฑด ์ ์ˆ˜๊ฐ€ ์™ผ์ชฝ์œ ํ˜•์ด ๋” ํฌ๊ฑฐ๋‚˜ ๊ฐ™์„ ๋•Œ๋‹ˆ๊นŒ else ํ•˜๋‚˜๋กœ ๋ !

 

 

 

import java.util.*;
class Solution {
    public String solution(String[] survey, int[] choices) {
        String answer = "";

        int[] score = {0,3,2,1,0,1,2,3}; // choices์˜ ๋ฒˆํ˜ธ๋ฅผ indexํ†ตํ•ด ์ ์ˆ˜๊ณ„์‚ฐ
        String[] user = {"R","T","C","F","J","M","A","N"}; // ์œ ํ˜•
        int[] calc = {0,0,0,0,0,0,0,0}; // user ๋งˆ๋‹ค ์ ์ˆ˜์Œ“๋Š” ๋ฐฐ์—ด

        int index = 0;
        for(int i=0; i<survey.length; i++){
            int target = choices[i]; // ๋ช‡์ ์„ ์ถ”๊ฐ€ํ•ด์•ผํ•˜๋Š”์ง€์˜ index
            String[] temp = {survey[i].substring(0,1), survey[i].substring(1,2)};
            if( choices[i] < 4){ // 1~3์ ์ผ ๋•Œ
                index = Arrays.asList(user).indexOf(temp[0]);
                calc[index] += score[target];
            }else {
                // 5~7์ ์ผ ๋•Œ
                index = Arrays.asList(user).indexOf(temp[1]);
                calc[index] += score[target];
            }
        }
        for (int i = 0; i < user.length; i += 2) {
            if (calc[i] < calc[i + 1]) { // ์ง€ํ‘œ์˜ ์˜ค๋ฅธ์ชฝ ์œ ํ˜•์ด ๋” ํฌ๋‹ค๋ฉด
                answer += user[i + 1];
            } else { // ์ง€ํ‘œ์˜ ์™ผ์ชฝ์œ ํ˜•์ด ๋” ํฌ๊ฑฐ๋‚˜ ๊ฐ™์„ ๋•Œ
                answer += user[i];
            }
        }
        return answer;
    }
}