Gaegul's devlog

[Algorithm 풀이] 완전탐색: 행렬 뒤집기 본문

Algorithm/Algorithm 풀이

[Algorithm 풀이] 완전탐색: 행렬 뒤집기

부지런깨꾹이 2022. 9. 24. 13:52
728x90
반응형

1) 입력  / 출력

1

1  1  1  1  1  1  1  1  1  1 
1 0 0 0 0 0 0 0 0 0 
1 0 0 0 0 0 0 0 0 0 
1 0 0 0 0 0 0 0 0 0 
1 0 0 0 0 0 0 0 0 0 
1 0 0 0 0 0 0 0 0 0 
1 0 0 0 0 0 0 0 0 0 
1 0 0 0 0 0 0 0 0 0 
1 0 0 0 0 0 0 0 0 0 
1 0 0 0 0 0 0 0 0 0 

2) 입력  / 출력

3

1 0 0 1 1 1 1 1 1 1
0 1 0 1 1 1 1 1 1 1
0 0 1 1 1 1 1 1 1 1
1 1 1 0 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0 0

## template
n = int(input())
arr = [[0] * (10) for _ in range(10)] 
#행 탐색
for i in range(n):
  for j in range(10):
    if arr[i][j] == 0:
      arr[i][j] = 1
    else:
      arr[i][j] = 0
  arr[i][i] = 1
#열 탐색  
for i in range(10):
  for j in range(n):
    if i == j : # 겹치는 부분 처리
      arr[j][j] = 1
      continue
    elif arr[i][j] == 0 :
      arr[i][j] = 1
    else:
      arr[i][j] = 0
#출력
for i in range(len(arr)) : 
  for j in range(len(arr)) :
    print(arr[i][j], end=' ')
  print()

 

SOLUTION

1) 행 탐색하면서 0 이면 1, 1이면 0 그리고 열 탐색하면서 0이면 1, 1이면 0 채우기

2) 행 채우고 열 채울때 겹치는 부분은 처리 안하는게 포인트 

if i == j : # 겹치는 부분 처리
  arr[j][j] = 1
  continue
728x90
반응형
Comments