알고리즘 스터디 (다이얼[백준 5622])

박윤택·2022년 5월 9일
3

알고리즘

목록 보기
4/25

문제

문제 이해

  1. 할머니께서는 숫자를 기억하고 계신게 아니라 숫자에 해당하는 알파벳 대문자를 기억하고 계신다.
  2. A,B,C는 3초가 걸리며 그 이후로는 1초씩 증가한다.
  3. 최소 시간을 출력한다라는 말에 빠지지 않기!
  4. 알파벳에 따른 시간을 어떻게 구할 것인지 -> Switch 문 사용

코드 작성

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

public class Dial {
  static int count;

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringTokenizer st = new StringTokenizer(br.readLine());
    String str = st.nextToken();

    for (int i = 0; i < str.length(); i++) {
      getTime(str.charAt(i));
    }
    System.out.println(count);
  }

  private static void getTime(char word) {
    switch (word) {
      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;
    }
  }
}

코드 설명

A는 2초가 걸리며 그 이후 알파벳은 그림에 나와있는대로 1초씩 추가로 시간이 걸리므로 각각에 해당하는 알파벳에 따라 count 변수에 시간을 계속해서 더해가 마지막에 count를 출력해주면 결과를 얻을 수 있다.

0개의 댓글