백준 알고리즘/문자열

[JAVA 자바] 배준 5622 : 다이얼

Sun720 2022. 6. 7. 15:26

▶ 문제

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

 

5622번: 다이얼

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

www.acmicpc.net

 설명

입력된 단어를 한 글자씩 읽어와서 이미 설정해 놓은 초 시간만큼씩 더하면 되는 문제이다.

알파벳 26개마다 3~10초 사이의 범위를 갖기 때문에 조건을 많이 걸 수밖에 없어서 나는 swich 문을 사용하였다.

 

문제 풀이

🌱 풀이1.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// 다이얼
public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		String s = br.readLine();
		int sum = 0;
		for (int i = 0; i < s.length(); i++) {
			int c = s.charAt(i);
			switch (c) {
				case 65:
				case 66:
				case 67:
					sum += 3;
					break;
				case 68:
				case 69:
				case 70:
					sum += 4;
					break;
				case 71:
				case 72:
				case 73:
					sum += 5;
					break;
				case 74:
				case 75:
				case 76:
					sum += 6;
					break;
				case 77:
				case 78:
				case 79:
					sum += 7;
					break;
				case 80:
				case 81:
				case 82:
				case 83:
					sum += 8;
					break;
				case 84:
				case 85:
				case 86:
					sum += 9;
					break;
				default:
					sum += 10;

			}
		}
		System.out.println(sum);

	}
}

알파벳을 불러올 때 charAt() 메소드를 사용했기 때문에 조건식에서 알파벳을 아스키코드 10진법으로 표현했다.

A~Z 는 65 ~ 91로 표현된다.

맞는 조건에 들어올 대마다 누적해서 초 단위를 합해주면 된다.

 

  default: sum += 10;  

마지막 WXYZ 의 경우는 case가 아닌 default로 되어 있는데

위의 조건에서 모두 만족하지 않을 시 지나가는 곳이므로

따로 case를 만들지 않고 합해야 할 초만 입력해주면 된다.

 

 

 

Log

728x90
반응형