뒤집고자 하는 방향과
NxN 행렬이 입력됩니다
2 <-> 5 끼리 바꿔주고
1 = 1
8 = 8
나머지 모든 숫자는 ? 로 바꿔준 후
원하는 방향으로 뒤집는게 문제입니다
코드입니다
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
String c = st.nextToken();
int n = Integer.parseInt(st.nextToken());
String[][] arr = new String[n][n]; // NxN 행렬을 만들어줍니다 (?를 저장하기위해 String으로)
for(int i=0; i<n; i++) {
st = new StringTokenizer(br.readLine());
for (int j=0; j<n; j++) {
int num = Integer.parseInt(st.nextToken());
if(num==1 || num==8) { // 조건에 맞춰서 먼저 저장을 해줍니다
arr[i][j] = String.valueOf(num);
}else if(num==2) {
arr[i][j] = "5";
}else if(num==5) {
arr[i][j] = "2";
}else {
arr[i][j] = "?";
}
}
}
if(c.equals("D") || c.equals("U")) { //위로 뒤집기와 아래로 뒤집기의 결과는 같습니다
for(int i=0; i<n; i++) { //이 경우 1행 2행 3행을, 3행 2행 1행 순서로 출력해줍시다
for (int j=0; j<n; j++) {
System.out.print(arr[n-1-i][j]+ " ");
}
System.out.println(); // 줄바꿈용
}
}else { // 오른쪽으로 뒤집기와 왼쪽으로 뒤집기의 결과는 같습니다
for(int i=0; i<n; i++) {
for (int j=0; j<n; j++) { //이 경우 1열 2열 3열을, 3열 2열 1열 순서로 출력해줍시다
System.out.print(arr[i][n-1-j]+ " ");
}
System.out.println(); // 줄바꿈용
}
}
}
}
'백준 문제풀기 > JAVA' 카테고리의 다른 글
[백준 27323 JAVA 자바] 직사각형 (0) | 2023.09.03 |
---|---|
[백준 26069 JAVA 자바] 붙임성 좋은 총총이 (0) | 2023.09.03 |
[백준 25501 JAVA 자바] 재귀의 귀재 (0) | 2023.09.03 |
[백준 25314 JAVA 자바] 코딩은 체육과목 입니다 (0) | 2023.09.03 |
[백준 25305 JAVA 자바] 커트라인 (0) | 2023.09.03 |