728x90
반응형
2024.09.19기준 - 브론즈2
728x90
백준, BEAKJOON, BOJ, JAVA, 자바
풀이
이 문제는 거울을 이용해 배열을 뒤집을 때, 1과 8은 그대로, 2는 5로, 5는 2로, 나머지는 ?로 출력하는 문제입니다.
1. 상, 하로 뒤집는 건 둘 다 똑같기 때문에 하나로 합쳐서 계산을 해줍니다.
// 상, 하로 뒤집을 때
if (w.equals("U") || w.equals("D")) {
for (int i = n - 1; i >= 0; i--) {
for (int j = 0; j < n; j++) {
if (arr[i][j] == 2) {
sb.append(5);
} else if (arr[i][j] == 5) {
sb.append(2);
} else if (arr[i][j] == 1) {
sb.append(1);
} else if (arr[i][j] == 8) {
sb.append(8);
} else {
sb.append("?");
}
sb.append(" ");
}
sb.append("\n");
}
}
2. 좌, 우도 똑같이 똑같기 때문에 하나로 합쳐서 만들어 줍니다.
// 좌, 우로 뒤집을 떄
} else {
for (int i = 0; i < n; i++) {
for (int j = n - 1; j >= 0; j--) {
if (arr[i][j] == 2) {
sb.append(5);
} else if (arr[i][j] == 5) {
sb.append(2);
} else if (arr[i][j] == 1) {
sb.append(1);
} else if (arr[i][j] == 8) {
sb.append(8);
} else {
sb.append("?");
}
sb.append(" ");
}
sb.append("\n");
}
}
코드
package Main;
import java.io.*;
import java.util.*;
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));
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(br.readLine());
String w = st.nextToken(); // 방향
int n = Integer.parseInt(st.nextToken()); // 배열의 크기
int[][] arr = new int[n][n];
for (int i = 0; i < n; i++) {
st = new StringTokenizer(br.readLine());
for (int j = 0; j < n; j++) {
arr[i][j] = Integer.parseInt(st.nextToken());
}
}
// 상, 하로 뒤집을 때
if (w.equals("U") || w.equals("D")) {
for (int i = n - 1; i >= 0; i--) {
for (int j = 0; j < n; j++) {
if (arr[i][j] == 2) {
sb.append(5);
} else if (arr[i][j] == 5) {
sb.append(2);
} else if (arr[i][j] == 1) {
sb.append(1);
} else if (arr[i][j] == 8) {
sb.append(8);
} else {
sb.append("?");
}
sb.append(" ");
}
sb.append("\n");
}
// 좌, 우로 뒤집을 떄
} else {
for (int i = 0; i < n; i++) {
for (int j = n - 1; j >= 0; j--) {
if (arr[i][j] == 2) {
sb.append(5);
} else if (arr[i][j] == 5) {
sb.append(2);
} else if (arr[i][j] == 1) {
sb.append(1);
} else if (arr[i][j] == 8) {
sb.append(8);
} else {
sb.append("?");
}
sb.append(" ");
}
sb.append("\n");
}
}
bw.write(sb.toString());
bw.flush();
bw.close();
br.close();
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BEAKJOON / 백준 - JAVA 13423번 Three Dots (1) | 2024.09.21 |
---|---|
BEAKJOON / 백준 - JAVA 10914번 Veni, vidi, vici (0) | 2024.09.20 |
BEAKJOON / 백준 - JAVA 18127번 모형결정 (0) | 2024.09.18 |
BEAKJOON / 백준 - JAVA 1043번 거짓말 (1) | 2024.09.17 |
BEAKJOON / 백준 - JAVA 2811번 상범이의 우울 (1) | 2024.09.16 |