[코드업] 설탕과자 뽑기_6097번

[코드업-기초100제] 설탕과자 뽑기_6097번


문제


링크 : BOJ

부모님과 함께 놀러간 영일이는 설탕과자(설탕을 녹여 물고기 등의 모양을 만든 것) 뽑기를 보게 되었다.

길이가 다른 몇 개의 막대를 바둑판과 같은 격자판에 놓는데,

막대에 있는 설탕과자 이름 아래에 있는 번호를 뽑으면 설탕과자를 가져가는 게임이었다. (잉어, 붕어, 용 등 여러 가지가 적혀있다.)

격자판의 세로(h), 가로(w), 막대의 개수(n), 각 막대의 길이(l), 막대를 놓는 방향(d:가로는 0, 세로는 1)과 막대를 놓는 막대의 가장 왼쪽 또는 위쪽의 위치(x, y)가 주어질 때,

격자판을 채운 막대의 모양을 출력하는 프로그램을 만들어보자.





풀이


  1. 격자를 초기화 해준다.

  2. 입력 값을 받고, for문을 돌리면서 해당 좌표에 따라 값을 바꿔준다.

  3. 공백을 두고 프린트를 해준다.

h, w = map(int, input().split())
data = [[0] * w for _ in range(h)]
n = int(input())
for _ in range(n):
    l, d, x, y = map(int, input().split())
    if d == 0:
        for i in range(l):
            data[x-1][y+i-1] = 1
    else:
        for i in range(l):
            data[x+i-1][y-1] = 1

for i in range(h):
    for j in range(w):
        print(data[i][j], end=" ")
    print()

실수했던 점


파이썬 문법의 이해 부족, data의 이중 배열을 초기화 하는 방법을 찾느라 오래 걸렸다. 컴프리핸션을 이용하자.