기타
코드업 6097 - 설탕과자 뽑기
히어로맛쿠키
2022. 2. 6. 19:30
그냥.. 파이썬 익힐겸.. 간단히..
h, w = map(int, input().split())
n = int(input())
# stick_list에는 각 막대의 정보가 tuple로 담겨있다.
stick_list = []
for i in range(n):
l, d, x, y = map(int, input().split())
stick_list.append((l, d, x, y))
# 판 형태 - 2차원 list - False로 채운다 - 0행,0열은 사용X
pad = [ [False for _ in range(w+1)] for _ in range(h+1) ]
# 판에 막대 놓기 - False을 True로 변경 - XOR 이용
for stick in range(n):
l = stick_list[stick][0]
d = stick_list[stick][1]
x = stick_list[stick][2]
y = stick_list[stick][3]
if d == 0: # stick 가로 배치
for length in range(l):
pad[x][y+length] = pad[x][y+length]^True
if d == 1: # stick 세로 배치
for length in range(l):
pad[x+length][y] = pad[x+length][y]^True
# 출력하기
for h in range(1,h+1):
for w in range(1,w+1):
print(int(pad[h][w]), end=' ')
print()
[ 방법 부연 설명 ]
- stick_list에는 각 stick의 속성 4개가 튜플로 묶여 담겨있다. 즉, 리스트의 요소는 각 stick이다.
- 판 형태 pad를 만들어준다. 각 요소는 모두 False
- stick_list의 tuple에서 각 stick 정보를 꺼내어, 이에 따라 stick을 pad에 배치해준다.
반응형