import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int count = 0;
int[][] ary = new int[10][10];
for (int i = 0; i < n; i++) { // 뒤집는 횟수를 결정. n번만큼 뒤집는다.
for (int a = 0; a < 10; a++) { // x축을 먼저 뒤집는다.
if (ary[i][a] == 1) { // i(y축)값을 고정 되어있고, a값(x축)이 변하면서 뒤집는다.
ary[i][a] = 0;
} else {
ary[i][a] = 1;
}
}
for (int b = 0; b < 10; b++) { // 같은 방법으로 y축을 뒤집는다.
if (ary[b][i] == 1) {
ary[b][i] = 0;
} else {
ary[b][i] = 1;
}
}
ary[i][i] = 1; // 대각선 방향은 결국에는 1이 출력된다.
}
for (int q = 0; q < 10; q++) {
for (int w = 0; w < 10; w++) {
System.out.print(ary[q][w] + " ");
}
System.out.println("");
}
}
}
문제는 n행n열의 수를 뒤집는 것이다. for문으로 몇 행, 몇 열까지 뒤집을 지 결정하고 내부에서는 먼저 x문을 뒤집고 이후에 y행을 뒤집는다.
또한 출력하다 보면 대각선의 방향의 값들은 모두 1이 되므로 for문 마지막에 1로 초기화 해준다.
'알고리즘 문제' 카테고리의 다른 글
[알고리즘 문제] Box Painting (0) | 2019.03.27 |
---|---|
[알고리즘 문제] Matrix Upside Down 2 (0) | 2019.03.26 |
[알고리즘 문제] Number Reverse Triangle (0) | 2019.03.23 |
[알고리즘 문제] Number Pyramid (0) | 2019.03.23 |
[알고리즘 문제] binary (0) | 2019.03.23 |