본문 바로가기
Problem Solving/백준

[백준|자바] 5622: 다이얼

by 청량리 물냉면 2021. 8. 28.
반응형
문제

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

 

5622번: 다이얼

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

www.acmicpc.net

 

코드
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String dial = sc.nextLine();
		int num;
		int sum = 0;
		
		for(int i = 0; i < dial.length(); i++){
			num = 1;
			switch (dial.charAt(i)) {
			case 'A':
			case 'B':
			case 'C': 
				num += 2;
				break;
			case 'D':
			case 'E':
			case 'F': 
				num += 3;
				break;
			case 'G':
			case 'H':
			case 'I': 
				num += 4;
				break;
			case 'J':
			case 'K':
			case 'L': 
				num += 5;
				break;
			case 'M':
			case 'N':
			case 'O': 
				num += 6;
				break;
			case 'P':
			case 'Q':
			case 'R': 
			case 'S': 
				num += 7;
				break;
			case 'T':
			case 'U':
			case 'V': 
				num += 8;
				break;
			case 'W':
			case 'X':
			case 'Y': 
			case 'Z': 
				num += 9;
				break;
			}
			sum += num;
		}
		
		System.out.println(sum);
		
		sc.close();
	}
}

 

코드 설명

사용자에게 입력받은 문자열의 길이만큼 for문을 돌며 각 인덱스를 확인한다.

해당 문자가 case문에 해당하는 문자라면

 

1 + 문자별로 지정된 숫자

(숫자 1을 걸기 위해 2초가 필요하고, 옆 자리 숫자를 걸려면 +1초씩 증가하므로)

 

를 num에 저장하고, switch문이 끝날 때마다 sum 변수에 num의 값을 저장해 준다.

for문이 종료되면 sum을 출력한다. 

 

*for문이 새로 시작될 때마다 num을 초기화 시켜주어야 이전 for문을 돌며 num에 저장된 수가 누적되지 않는다. 

 

 

 

마무리

switch (dial.charAt(i)) {
	case 'A', 'B', 'C': 
		num += 2;
		break;
	case 'D', 'E', 'F': 
		num += 3;
		break;
	case 'G', 'H', 'I': 
		num += 4;
		break;
	case 'J', 'K', 'L': 
		num += 5;
		break;
	case 'M', 'N', 'O': 
		num += 6;
		break;
	case 'P', 'Q', 'R', 'S': 
		num += 7;
		break;
	case 'T', 'U', 'V': 
		num += 8;
		break;
	case 'W', 'X', 'Y', 'Z': 
		num += 9;
		break;
 }

초기에는 이렇게 코드를 작성했고 이클립스에서도 잘 돌아갔는데 컴파일 에러 뜸.

자바 11에서 case 다중 라벨은 지원하지 않는다고 한다.  

 

반응형

'Problem Solving > 백준' 카테고리의 다른 글

[백준|C++] 10250: ACM 호텔  (1) 2021.09.01
[백준|C++] 2292: 벌집  (0) 2021.09.01
[백준|C++] 1712: 손익분기점  (0) 2021.08.31
[백준|자바] 2908: 상수  (0) 2021.08.28
[백준|자바] 1152: 단어의 개수  (0) 2021.08.28
[백준|자바] 1157: 단어 공부  (0) 2021.08.27