© 2025 anveloper.dev
GitHub·LinkedIn·Contact

목차

  • 문제
  • 입력
  • 출력
  • 예제
  • 풀이
  • 코드
  • 복잡도
풀이 목록으로 돌아가기

BOJ 5622 - 다이얼

2023-08-17
BOJ
브론즈 II
java
원본 문제 보기
구현

문제

BOJ 5622 - 다이얼

전화 다이얼로 알파벳 단어를 입력할 때 걸리는 총 시간을 구한다. 각 알파벳은 전화기의 숫자 버튼에 매핑되며, 숫자 N을 다이얼하면 N+1초가 소요된다.

입력

첫째 줄에 대문자 알파벳으로 이루어진 단어가 주어진다 (길이 2 이상 15 이하).

출력

단어를 다이얼하는 데 걸리는 총 시간을 출력한다.

예제

입력출력
UNUCIC36

풀이

각 알파벳에 대응하는 다이얼 번호를 switch문으로 매핑하여 시간을 누적한다.

  1. 문자열의 각 문자를 순회한다
  2. ABC→3, DEF→4, GHI→5, JKL→6, MNO→7, PQRS→8, TUV→9, WXYZ→10을 누적한다
  3. 총 시간을 출력한다

핵심 아이디어: 전화 다이얼에서 숫자 N을 돌리면 N+1초가 걸리므로, 각 알파벳이 속한 숫자 + 1이 소요 시간이다.

코드

package day599;
 
import java.io.*;
 
public class Day557BOJ5622다이얼 {
  public static void main(String[] args) throws Exception {
 
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 
    String s = br.readLine();
 
    int count = 0;
    int k = s.length();
 
    for (int i = 0; i < k; i++) {
 
      switch (s.charAt(i)) {
        case 'A':
        case 'B':
        case 'C':
          count += 3;
          break;
 
        case 'D':
        case 'E':
        case 'F':
          count += 4;
          break;
 
        case 'G':
        case 'H':
        case 'I':
          count += 5;
          break;
 
        case 'J':
        case 'K':
        case 'L':
          count += 6;
          break;
 
        case 'M':
        case 'N':
        case 'O':
          count += 7;
          break;
 
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
          count += 8;
          break;
 
        case 'T':
        case 'U':
        case 'V':
          count += 9;
          break;
 
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
          count += 10;
          break;
      }
    }
    System.out.print(count);
  }
}

복잡도

  • 시간: O(N) — N은 문자열 길이
  • 공간: O(1)