기타

코드업 6096 - 바둑알 십자 뒤집기

히어로맛쿠키 2022. 2. 6. 17:54

 

구냥해봄.. 

 

# 2차원 리스트 만들기
pad = []
for _ in range(19):
  pad.append( list(map(int, input().split())) )

# point 입력받기
# 유의점 : row, col은 1에서 19까지의 범위로 들어오므로 index 유의!
n = int(input())
point_row = []
point_col = []
for i in range(n):
  r, c = input().split()
  point_row.append(int(r)-1)
  point_col.append(int(c)-1)

# 십자 뒤집기
for i in range(n):
  row = point_row[i]
  col = point_col[i]
  for j in range(19):
    pad[row][j] = 1 - pad[row][j]
    pad[j][col] = 1 - pad[j][col]

# 출력하기
for r in range(19):
  for c in range(19):
    print(pad[r][c], end=' ')
  print()

 

 

[ 방법 부연설명 ]

- pad라는 1차원 리스트에다가 입력된 리스트를 즉시 append해 2차원 리스트를 실시간으로 만들어감

- point 정보를 받을 때, row list와 col list를 따로 만들어둠 - 추후 동일 idx로 row, col을 다루고 싶었기 때문 

- 0, 1 뒤집기의 핵심은 var = 1 - var

 

 

 

 

반응형