[Baekjoon] 5622번 문제풀이 - 다이얼
2020. 8. 7. 17:01ㆍComputer Sciences/Problem Solve
문제를 보자마자 ASCII 코드를 활용하여 풀면 되겠다는 생각이 들었습니다. If, else-if 문 혹은 switch 문을 사용할 수 있습니다. 먼저 If, else-if 문으로 작성한 코드를 보도록 합시다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Baekjoon5622 {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
try {
str = br.readLine();
} catch (IOException e) {
System.out.println("입출력 오류 발생");
}
str = str.toUpperCase();
int time = 0;
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch >= 'A' && ch <= 'C') { // A, B, C
time += 3;
} else if (ch >= 'D' && ch <= 'F') { // D, E, F
time += 4;
} else if (ch >= 'G' && ch <= 'I') { // G, H, I
time += 5;
} else if (ch >= 'J' && ch <= 'L') { // J, K, L
time += 6;
} else if (ch >= 'M' && ch <= 'O') { // M, N, O
time += 7;
} else if (ch >= 'P' && ch <= 'S') { // P, Q, R, S
time += 8;
} else if (ch >= 'T' && ch <= 'V') { // T, U, V
time += 9;
} else if (ch >= 'W' && ch <= 'Z') { // W, X, Y, Z
time += 10;
}
}
System.out.println(time);
}
}
이번엔 switch 문으로 작성한 코드를 봅시다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Baekjoon5622 {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
try {
str = br.readLine();
} catch (IOException e) {
System.out.println("입출력 오류 발생");
}
str = str.toUpperCase();
int time = 0;
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
time += calcTime(ch);
}
System.out.println(time);
}
public static int calcTime(char ch) {
switch (ch) {
case 'A':
case 'B':
case 'C':
return 3;
case 'D':
case 'E':
case 'F':
return 4;
case 'G':
case 'H':
case 'I':
return 5;
case 'J':
case 'K':
case 'L':
return 6;
case 'M':
case 'N':
case 'O':
return 7;
case 'P':
case 'Q':
case 'R':
case 'S':
return 8;
case 'T':
case 'U':
case 'V':
return 9;
case 'W':
case 'X':
case 'Y':
case 'Z':
return 10;
default:
return -1;
}
}
}
다른 분들이 작성한 코드를 보니 규칙을 찾아서 수학적으로 접근하신 분들도 계시더라구요( 대단 ㄷㄷ)
'Computer Sciences > Problem Solve' 카테고리의 다른 글
[Baekjoon] 1316번 문제풀이 - 그룹 체커 (0) | 2020.08.07 |
---|---|
[Baekjoon] 2941번 문제풀이 - 크로아티아 알파벳 (0) | 2020.08.07 |
[Baekjoon] 2908번 문제풀이 (0) | 2020.08.05 |
[Baekjoon] 1152번 문제풀이 (0) | 2020.08.05 |
[Baekjoon] 별 찍기 - 10991 문제풀이 with Java (0) | 2020.04.18 |