문제 풀이

[백준] 5622번: 다이얼 - JAVA (자바)

auyeol 2023. 8. 6. 11:37
728x90

 

문제

 

https://www.acmicpc.net/problem/5622

 

5622번: 다이얼

첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다.

www.acmicpc.net

 

다음과 같이 다이얼이 주어져있다. 대문자 알파벳이 주어지고 해당하는 알파벳에 해당하는 숫자를 누른다. 이때 필요한 시간을 구하는 문제이다.

 

 

입력                                    	출력
WA						13

입력                                    	출력
UNUCIC						36

 

 

숫자를 누르면 다이얼이 원래위치로 돌아가고 다음 숫자를 누르려면 다시 처음부터 돌려야한다.

 

1을 누르면 2초, 다음번 째의 숫자들을 입력하는데는 1초씩 더 걸린다.

 

따라서 ABC는 3초, DEF는 4초, GHI는 5초 .... WXYZ는 10초가 걸린다.

 

 

 

 

------------------------------------------------------------------------------------------------------------------

 

 

풀이

 

Scanner를 통해 알파벳 문자열을 입력받은 뒤, 문자열의 길이만큼 for문을 반복시킨 뒤, charAt()을 이용하여 알파벳을 하나씩 Char형으로 바꾸게하였다. 

 

ABC는 3초, DEF는 4초 ... 이므로 Swtich문을 이용하여 알파벳이 ABC인 경우 count += 3, DEF인 경우 count +=  4 .... 이런식으로 풀었다.

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String str = sc.next();
		sc.close();
		
		int count = 0;
		int len = str.length();
		
		for(int i=0;i<len;i++) {
			switch(str.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.println(count);
	}
}

 

728x90