728x90
반응형
문제
상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다.
전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다.
숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다.
상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다. 즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다.
할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 최소 시간을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다.
풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] alpha = scanner.nextLine().split("");
int res = 0;
for (int i = 0; i < alpha.length; i++) {
if (alpha[i].equals("A")||alpha[i].equals("B")||alpha[i].equals("C")){
res += 3;
} else if (alpha[i].equals("D")||alpha[i].equals("E")||alpha[i].equals("F")) {
res += 4;
} else if (alpha[i].equals("G")||alpha[i].equals("H")||alpha[i].equals("I")) {
res += 5;
} else if (alpha[i].equals("J")||alpha[i].equals("K")||alpha[i].equals("L")) {
res += 6;
} else if (alpha[i].equals("M")||alpha[i].equals("N")||alpha[i].equals("O")) {
res += 7;
} else if (alpha[i].equals("P")||alpha[i].equals("Q")||alpha[i].equals("R")||alpha[i].equals("S")) {
res += 8;
} else if (alpha[i].equals("T")||alpha[i].equals("U")||alpha[i].equals("V")) {
res += 9;
} else if (alpha[i].equals("W")||alpha[i].equals("X")||alpha[i].equals("Y")||alpha[i].equals("Z")) {
res += 10;
}
}
System.out.println(res);
}
}
728x90
반응형
'백준' 카테고리의 다른 글
[JAVA] 백준 10988번 팰린드롬인지 확인하기 (0) | 2023.03.22 |
---|---|
[JAVA] 백준 2444번 별 찍기 - 7 (0) | 2023.03.20 |
[JAVA] 백준 9086번 문자열 (0) | 2023.03.20 |
[JAVA] 백준 27866번 문자와 문자열 (0) | 2023.03.20 |
[JAVA] 백준 10811번 바구니 뒤집기 (0) | 2023.03.20 |