▶ 문제
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
반응형
'백준 알고리즘 > 문자열' 카테고리의 다른 글
[JAVA 자바] 백준 1316번 : 그룹 단어 체커 (0) | 2022.06.09 |
---|---|
[JAVA 자바] 백준 2941번 : 크로아티아 알파벳 (1) | 2022.06.08 |
[JAVA 자바] 백준 2908번 : 상수 (0) | 2022.06.06 |
[JAVA 자바] 백준 1152번 : 단어의 개수 (0) | 2022.06.05 |
[JAVA 자바] 백준 1157번 : 단어 공부 (0) | 2022.06.04 |