[Java] 백준 5622번: 다이얼

hansung's·2024년 2월 20일
0

문제 url:
다이얼

문제

※ 알고가자!

  • 각 알파뱃에 따른 숫자가 따로 주어진다. ex) abc = 2, def = 3

    • 그래서 if문 혹은 swtich-case문으로 알파뱃이 입력되었을 때 그에 맞는 숫자를 대입할 수 있도록 해보자
  • 숫자 1을 걸려면 총 2초가 걸리면 한 칸 옆 숫자를 걸기 위해서 1초씩 더 걸리는 조건을 잘 생각해 시간을 계산해보자

    	위의 사진에 있는 다이얼을 봐야 풀 수 있는 문제이다.

🐱‍👤 문제 풀이

import java.io.*;


public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        char[] num = br.readLine().toCharArray();
        int sec = 0;

        for (char value : num) {
            switch(value) {
                case 'A': case 'B': case 'C':
                    sec += 3;
                    break;
                case 'D': case 'E': case 'F':
                    sec += 4;
                    break;
                case 'G': case 'H': case 'I':
                    sec += 5;
                    break;
                case 'J': case 'K': case 'L':
                    sec += 6;
                    break;
                case 'M': case 'N': case 'O':
                    sec += 7;
                    break;
                case 'P': case 'Q': case 'R': case 'S':
                    sec += 8;
                    break;
                case 'T': case 'U': case 'V':
                    sec += 9;
                    break;
                case 'W': case 'X': case 'Y': case 'Z':
                    sec += 10;
                    break;

            }
        }
        System.out.println(sec);

    }
}

문제를 풀이해보면, 단어를 입력받으면 toCharArray를 이용해 문자형 배열로 만들어 준 다음 forEach문을 이용하여 반복할 수 있도록 코드를 짜보았다.
그 후 swtich문에 맞게 시간을 더하도록 하였다.

🤢 트러블 슈팅

트러블 슈팅.. case 'A', 'B', -> JDK11에서는 지원하지 않는다..

처음에는 case 'A', 'B' 이렇게 해도 문제없이 실행되어 제출 하였지만, 이럴수가 java11버전에서는 지원하지 않는 방식이라고 한다.(17을 사용하다 현재는 11로 다운그레이드 하였다.)

저 방법을 사용하기 이전엔 ||으로 멀티플 case를 해봤지만 그렇게 하면 안된다고 한다. 
그래서 찾아보니 저렇게 case문을 하나하나 입력해줘야 한다.

지금 생각하니 swtich~case문에 대해 이해 없이 사용했던 것 같다.
누군가에게는 단순한 구문일 수 있지만, 해당 문제를 풀면서 (필자는)생각 없이, 이해 없이 쉽게 써왔던 것 같아 약간의 반성을 하는 시간을 가졌다...

profile
ABAPER를 꿈꾸는 개발자

0개의 댓글