백준 풀이/자바(Java)
백준 10545 자바 - 뚜기뚜기메뚜기
콘스_
2024. 8. 13. 13:39
// 뚜기뚜기메뚜기
package Bronze_I_1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class Ex10545 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
List<Integer> arr = new ArrayList<>(10); // 바뀐 자판 저장
arr.add(0); // 안 쓰는 초기값
// 예제 입력
for (int i = 1; i <= 9; i++) {
arr.add(i, Integer.parseInt(st.nextToken())); // 바뀐 키대로 입력
}
char[] s = br.readLine().toCharArray(); // 문자열 입력
// 눌러야 하는 키 계산
int prev = 0; // 이전 번호
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length; i++) {
if (s[i] == 'a' || s[i] == 'b' || s[i] == 'c') {
if (prev == 2) { // 이전에도 이 키를 썼으면 #추가
sb.append("#");
}
for (int j = 0; j <= Math.abs(s[i] - 'a'); j++) {
sb.append(arr.indexOf(2));
}
prev = 2;
} else if (s[i] == 'd' || s[i] == 'e' || s[i] == 'f') {
if (prev == 3) {
sb.append("#");
}
for (int j = 0; j <= Math.abs(s[i] - 'd'); j++) {
sb.append(arr.indexOf(3));
}
prev = 3;
} else if (s[i] == 'g' || s[i] == 'h' || s[i] == 'i') {
if (prev == 4) {
sb.append("#");
}
for (int j = 0; j <= Math.abs(s[i] - 'g'); j++) {
sb.append(arr.indexOf(4));
}
prev = 4;
} else if (s[i] == 'j' || s[i] == 'k' || s[i] == 'l') {
if (prev == 5) {
sb.append("#");
}
for (int j = 0; j <= Math.abs(s[i] - 'j'); j++) {
sb.append(arr.indexOf(5));
}
prev = 5;
} else if (s[i] == 'm' || s[i] == 'n' || s[i] == 'o') {
if (prev == 6) {
sb.append("#");
}
for (int j = 0; j <= Math.abs(s[i] - 'm'); j++) {
sb.append(arr.indexOf(6));
}
prev = 6;
} else if (s[i] == 'p' || s[i] == 'q' || s[i] == 'r' || s[i] == 's') {
if (prev == 7) {
sb.append("#");
}
for (int j = 0; j <= Math.abs(s[i] - 'p'); j++) {
sb.append(arr.indexOf(7));
}
prev = 7;
} else if (s[i] == 't' || s[i] == 'u' || s[i] == 'v') {
if (prev == 8) {
sb.append("#");
}
for (int j = 0; j <= Math.abs(s[i] - 't'); j++) {
sb.append(arr.indexOf(8));
}
prev = 8;
} else if (s[i] == 'w' || s[i] == 'x' || s[i] == 'y' || s[i] == 'z') {
if (prev == 9) {
sb.append("#");
}
for (int j = 0; j <= Math.abs(s[i] - 'w'); j++) {
sb.append(arr.indexOf(9));
}
prev = 9;
}
}
System.out.println(sb);
}
}