[백준/5622/Java]다이얼
풀이1
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String str = br.readLine();
char[] cArr = str.toCharArray();
int result = 0;
for (int i = 0; i < cArr.length; i++) {
if(cArr[i] == 'A' || cArr[i] == 'B' || cArr[i] == 'C') {
result += 3;
} else if(cArr[i] == 'D' || cArr[i] == 'E' || cArr[i] == 'F') {
result += 4;
} else if(cArr[i] == 'G' || cArr[i] == 'H' || cArr[i] == 'I') {
result += 5;
} else if(cArr[i] == 'J' || cArr[i] == 'K' || cArr[i] == 'L') {
result += 6;
} else if(cArr[i] == 'M' || cArr[i] == 'N' || cArr[i] == 'O') {
result += 7;
} else if(cArr[i] == 'P' || cArr[i] == 'Q' || cArr[i] == 'R' || cArr[i] == 'S') {
result += 8;
} else if(cArr[i] == 'T' || cArr[i] == 'U' || cArr[i] == 'V') {
result += 9;
} else if(cArr[i] == 'W' || cArr[i] == 'X' || cArr[i] == 'Y' || cArr[i] == 'Z') {
result += 10;
}
}
bw.write(Integer.toString(result));
bw.flush();
bw.close();
}
}
풀이2
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int[] arr = {3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,8,9,9,9,10,10,10,10};
String str = br.readLine();
int result = 0;
for (int i = 0; i < str.length(); i++) {
int time = arr[str.charAt(i) - 65];
result += time;
}
bw.write(String.valueOf(result));
bw.flush();
bw.close();
}
}
후기
풀이1은 다이얼마다 조건을 나누고 입력받은 문자열이 해당 조건을 탈 경우에 시간을 증가시켜주는 로직으로 짯습니다.
하지만 코드가 지저분해서 다른분들의 처리 결과를 보면서 풀이2와 같이 변경해보았습니다.
아스키 코드를 이용해서 처리를 하니 훨씬 심플한 처리가 가능하게 되었네요
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준/2869/Java]달팽이는 올라가고 싶다 (0) | 2022.04.24 |
---|---|
[백준/1712/Java]손익분기점 (0) | 2022.04.21 |
[백준/1110/Java]더하기 사이클 (0) | 2022.04.17 |
[백준/10809/Java]알파벳 찾기 (0) | 2022.04.15 |
[백준/2753/Java]윤년 (0) | 2022.04.11 |