[CodeUp] 6097 설탕과자 뽑기 (파이썬)

Jewon Joel Park·2022년 5월 28일
0

문제 링크


문제 설명

격자판 내에 막대를 놓았을 때, 막대에 의해 가려진 경우 1, 아닌 경우 0으로 출력하는 코드 작성
설탕과자 뽑기


풀이 코드

h, w = map(int, input().split())
n = int(input())
ldxy = [list(map(int, input().split())) for _ in range(n)]
arr = [[0 for _ in range(w)] for _ in range(h)]

for l, d, x, y in ldxy:
  x -= 1
  y -= 1
  for row in range(h):
    for col in range(w):
      if x == row and y == col:
        if d == 0:
          for i in range(l):
            arr[x][y+i] += 1
        if d == 1:
          for i in range(l):
            arr[x+i][y] += 1
for item in arr:
  print(*item)

코드 설명

  1. 입력으로 주어지는 변수들 (h, w, l, d, x, y)과 격자 크기에 맞게 0으로 채워진 배열(arr) 선언
  2. 격자는 막대를 놓을 때 마다 변환되므로 ldxy 기준 for Loop을 생성하고, 각 변수를 언패킹한 뒤 xy를 좌표에서 인덱스로 변환(-1)
    이 때, 문제에서 주어진 x가 행번호(열 데이터),y가 열번호(행 데이터)를 다루므로, 통상적인 [y][x]와 순서를 달리한다는 점에 유의
  3. 격자 데이터에 접근하기 위해 가로세로 크기만큼 for Loop 생성, x와 행, y와 열 번호가 일치할 때 d==0이면 가로데이터를, d==1이면 세로데이터를 l 크기만큼 반복하며 1씩 증가
  4. 별도 for문으로 변경한 데이터를 모두 언패킹하여 출력
profile
10년을 돌고 돌아 마침내 제자리를 찾은 문과 출신 Python 개발자의 인생기록장

0개의 댓글