본문 바로가기
알고리즘/백준

[백준] 5622 - 다이얼

by pandastic 2024. 3. 1.
반응형

5622번 문제(1)
5622번 문제(2)

 

1. Scanner를 이용한 방법

import java.util.Scanner;

public class Main{
public static void main(String[] args){

    Scanner sc = new Scanner(System.in);

    String word = sc.next();
    int sum = 0;

    for(int i=0; i<word.length(); i++){
        switch (word.charAt(i)) {
            case 'A': case 'B': case 'C':
                sum += 3;
                break;

            case 'D': case 'E': case 'F':
                sum += 4;
                break;

            case 'G': case 'H': case 'I':
                sum += 5;
                break;
                
            case 'J': case 'K': case 'L':
                sum += 6;
                break;

            case 'M': case 'N': case 'O':
                sum += 7;
                break;

            case 'P': case 'Q': case 'R': case 'S':
                sum += 8;
                break;

            case 'T': case 'U': case 'V':
                sum += 9;
                break;

            case 'W': case 'X': case 'Y': case 'Z':
                sum += 10;
                break;
        }
    }
    System.out.println(sum);
    sc.close();
    }
}

 

2. BufferedReader를 이용한 방법

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{
public static void main(String[] args)throws IOException{

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    String word = br.readLine();
    int sum = 0;

    for(int i=0; i<word.length(); i++){
        switch (word.charAt(i)) {
            case 'A': case 'B': case 'C':
                sum += 3;
                break;

            case 'D': case 'E': case 'F':
                sum += 4;
                break;

            case 'G': case 'H': case 'I':
                sum += 5;
                break;
                
            case 'J': case 'K': case 'L':
                sum += 6;
                break;

            case 'M': case 'N': case 'O':
                sum += 7;
                break;

            case 'P': case 'Q': case 'R': case 'S':
                sum += 8;
                break;

            case 'T': case 'U': case 'V':
                sum += 9;
                break;

            case 'W': case 'X': case 'Y': case 'Z':
                sum += 10;
                break;
        }
    }
    System.out.println(sum);
    br.close();
    }
}

처음에 charAt()으로 추출해서 ASCII 코드를 뽑아서 A의 값인 65를 빼는 방식으로 어떻게 해보려고 했는데 전혀 감이 안잡혀서 고민하다보니 switch ~ case 문으로 쓸 수 있다는 걸 깨닫고 이용하여 풀었다

반응형

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 25083 - 새싹  (0) 2024.03.03
[백준] 11718 - 그대로 출력하기  (0) 2024.03.02
[백준] 2908 - 상수  (0) 2024.02.29
[백준] 1152 - 단어의 개수  (0) 2024.02.28
[백준] 2675 - 문자열 반복  (0) 2024.02.27