본문 바로가기
백준 문제 풀이/문자열

(#5622 Java) 다이얼

by _비니_ 2023. 8. 28.
문제

 

 

문제 이해

 

숫자 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