
import java.util.Scanner;
public class String10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int initNum = 0;
String[] word
= {"1", "ABC", "DEF", "GHI", "JKL", "MNO", "PRQS",
"TUV", "WXYZ"};
String S = sc.nextLine();
for (int i = 0; i < S.length(); i++) {
switch (S.charAt(i)) {
case 'A':
case 'B':
case 'C':
initNum += 3;
break;
case 'D':
case 'E':
case 'F':
initNum +=4;
break;
case 'G':
case 'H':
case 'I':
initNum += 5;
break;
case 'J':
case 'K':
case 'L':
initNum +=6;
break;
case 'M':
case 'N':
case 'O':
initNum +=7;
break;
case 'P':
case 'Q':
case 'R':
case 'S':
initNum += 8;
break;
case 'T':
case 'U':
case 'V':
initNum += 9;
break;
case 'W':
case 'X':
case 'Y':
case 'Z':
initNum += 10;
break;
default:
initNum += 2;
}
}
System.out.println(initNum);
}
}
Scanner sc = new Scanner(System.in);
int initNum = 0;
String[] word
= {"1", "ABC", "DEF", "GHI", "JKL", "MNO", "PRQS",
"TUV", "WXYZ"};
String S = sc.nextLine();
너무 깊게 생각 할 필요가 없고 해당 숫자에 걸려있는 알파뱃을 순차적으로 배열에 넣으면 된다. 그리고 S에는 입력할 알파벳을 입력한다.
for (int i = 0; i < S.length(); i++) {
switch (S.charAt(i)) {
case 'A':
case 'B':
case 'C':
initNum += 3;
break;
case 'D':
case 'E':
case 'F':
initNum +=4;
break;
case 'G':
case 'H':
case 'I':
initNum += 5;
break;
case 'J':
case 'K':
case 'L':
initNum +=6;
break;
case 'M':
case 'N':
case 'O':
initNum +=7;
break;
case 'P':
case 'Q':
case 'R':
case 'S':
initNum += 8;
break;
case 'T':
case 'U':
case 'V':
initNum += 9;
break;
case 'W':
case 'X':
case 'Y':
case 'Z':
initNum += 10;
break;
default:
initNum += 2;
}
}
System.out.println(initNum);
}
}
더 간단하게 할 방법이 있을 것 같지만 나는 단순하게 생각하는게 좋다 생각해 약간 노가다 식 코드를 구현해봤다. 디폴트 값 까진 2초가 걸리니, 나머지 해당하는 알파벳은 1초 씩 증가하는 식으로 구현하면 된다. 그리고 for문에선 내가 받았던 글자 S를 하나 씩 검사해 해당하는 알파벳의 시간을 추가하면 된다.
(알파벳 하나 입력 시 다시 원점으로 돌아가는 식이기에 각 케이스 문에 break문을 써준다.)
