반응형
https://www.acmicpc.net/problem/5622
5622번: 다이얼
첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다.
www.acmicpc.net
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 number = br.readLine();
char[] arr = new char[number.length()];
int time = 0;
for(int i = 0; i < number.length(); i++){
arr[i] = number.charAt(i);
}
for(int i = 0; i < arr.length; i++){
if((int)arr[i] <= 67){
time += 3;
} else if((int)arr[i] <= 70){
time += 4;
} else if((int)arr[i] <= 73){
time += 5;
} else if((int)arr[i] <= 76){
time += 6;
} else if((int)arr[i] <= 79){
time += 7;
} else if((int)arr[i] <= 83){
time += 8;
} else if((int)arr[i] <= 86){
time += 9;
} else if((int)arr[i] <= 90){
time += 10;
} else {
time += 1;
}
}
System.out.println(time);
}
}
이용 방식은 아스키 코드로 풀었음
switch ~ case로 풀어도 되지만 아스키 코드로 풀고 싶어서 이렇게 풀었다!
이렇게 보니까 (int)arr[i]를 변수로 받아서 푸는게 훨씬 깔끔할 뻔했다.
참고할 아스키 코드표. 문제에서 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 라고 했으므로 A(65)~Z(90)까지 참고하면 된다.
풀이
1.
숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다.
라고 하였으므로
1 -> 2초
2 -> 3초
3 -> 4초
임을 참고하여 로직을 짜면 된다.
728x90
'Coding Test > 백준' 카테고리의 다른 글
[백준 자바 JAVA] 1193번 분수찾기 (0) | 2022.03.20 |
---|---|
[백준 자바 JAVA] 2292번 벌집 (0) | 2022.03.18 |
[백준 자바 JAVA] 1316번 그룹 단어 체커 (0) | 2022.03.17 |
[백준 자바 JAVA] 2941번 크로아티아 알파벳 (0) | 2022.03.17 |
[백준 자바 JAVA] 1330번 두 수 비교하기 (0) | 2022.03.07 |
댓글