문제
문제 이해
숫자 1은 2초가 걸리고 숫자가 1씩 올라갈 때마다 1초가 더 걸린다.
숫자 2부터 알파벳이 위 그림과 같이 적혀있는데 ( 2 => A,B,C / 3 => D,E,F ... ),
입력 받은 문자열을 이 다이얼로 걸었을 때 걸리는 총 소요 시간을 구하는 것이다.
문제 해결
숫자 1은 2초, 숫자 2에 해당하는 A,B,C는 3초, 숫자 3에 해당하는 D,E,F는 4초..... 숫자 9에 해당하는 W,X,Y,Z는 10초가 소요된다. 이를 구하는 방법은 switch - case 를 이용하는 것이다.
우선 문자열을 입력 받고, 문자열의 길이만큼 switch - case 문을 반복한다.
Scanner in = new Scanner(System.in);
String S = in.nextLine();
for(int i = 0; i < S.length(); i++) {
//구현
}
for문 안에 switch - case 문 작성
count를 0으로 초기화 시킨 후, 문자열에서 charAt()을 이용해 문자 하나씩 추출해 해당하는 case문 실행하기!!
int count = 0;
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;
}
}
각 문자들이 해당 case를 실행하면 총 소요 시간이 count에 저장되게 된다.
그럼 이를 출력해주면 끗!!!!
System.out.print(count);
최종 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String S = in.nextLine();
int count = 0;
for(int i = 0; i < S.length(); 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);
}
}
반응형
'백준 문제 풀이 > 문자열' 카테고리의 다른 글
(#11718 Java) 그대로 출력하기 (0) | 2023.08.28 |
---|---|
(#2908 Java) 상수 (0) | 2023.08.27 |
(#1152 Java) 단어의 개수 (0) | 2023.08.27 |
(#2675 Java) 문자열 반복 (0) | 2023.08.27 |
(#10809 Java) 알파벳 찾기★ (0) | 2023.08.26 |