이 구역의 승자는 누구야?! [백준] 20154번 java

최준호·2022년 5월 2일
0

algorithm

목록 보기
34/39
post-thumbnail

문제 링크

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

public class B20154 {
    static final Map<String, Integer> MAP = new HashMap<>();

    public static void main(String[] args) throws Exception{

        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        String input = bf.readLine().trim();

        //map에 획수 정보 넣기
        MAP.put("A",3);
        MAP.put("B",2);
        MAP.put("C",1);
        MAP.put("D",2);
        MAP.put("E",3);
        MAP.put("F",3);
        MAP.put("G",3);
        MAP.put("H",3);
        MAP.put("I",1);
        MAP.put("J",1);
        MAP.put("K",3);
        MAP.put("L",1);
        MAP.put("M",3);
        MAP.put("N",3);
        MAP.put("O",1);
        MAP.put("P",2);
        MAP.put("Q",2);
        MAP.put("R",2);
        MAP.put("S",1);
        MAP.put("T",2);
        MAP.put("U",1);
        MAP.put("V",1);
        MAP.put("W",2);
        MAP.put("X",2);
        MAP.put("Y",2);
        MAP.put("Z",1);

        sb.append(solve(input));
        System.out.print(sb);
    }
    public static String solve(String str){

        char[] chars = str.toCharArray();
        int su = 0;
        //모든 알파벳을 획수 숫자로 치환
        int i = 0;
        for(char c : chars){
            su += MAP.get(String.valueOf(c));
        }
        su = su%10;

        //홀수면 I'm a winner!
        //짝수면 You're the winner?
        return su%2 == 0 ? "You're the winner?" : "I'm a winner!";
    }
}

key value 유형이 보이길래 hash를 사용하여 풀이했다. 문제 중 가장 골머리를 앓았던 부분이 어떻게 2개씩 쪼개서 더해갈까? 였는데

그냥 결국 다 더하는거여서 다 더하면 된다... 이 부분이 제일 어려웠고 제일 어이 없게 풀이됐다...

생각보다 어렵지 않았던 문제

profile
코딩을 깔끔하게 하고 싶어하는 초보 개발자 (편하게 글을 쓰기위해 반말체를 사용하고 있습니다! 양해 부탁드려요!) 현재 KakaoVX 근무중입니다!

0개의 댓글