본문 바로가기

Code Up

[Code Up] - Python 기초 100제, 6097번 풀이 - 티스토리

 

 

 

 

문제 설명

 

입력에 해당 되는 값들로 격자판 위에 막대를 놓아 새로운 격자판을 만들자

 

 

 

풀이

 

location = []

height, width = map(int, input().split())
n = int(input())

for i in range(height):
    location.append([])

    for j in range(width):
        location[i].append(0)


length = 0
direction = 0
x = 0
y = 0

for i in range(n):
    length, direction, x, y = map(int, input().split())

    if (direction == 1):
        for j in range(length):
            if(x+j <= height):
                location[x+j-1][y-1] = 1
    else:
        for j in range(length):
            if(y+j <= width):
                location[x-1][y+j-1] = 1

for i in range(height):
    for j in range(width):
        print(location[i][j], end=' ')
    print()

 

 

 

 

해설

 

주어진 조건에 따라 입력을 받는다

막대의 갯수 만큼 반복하며

막대의 방향에 따라

x 혹은 y 좌표를 고정시킨 후 

막대의 높이 만큼 반복하며 막대가 놓여진 곳에 1을 대입한다

 

 

 

 

다른 분 풀이

 

h, w = map(int, input().split())
n = int(input())

zeros = [[0] * w for _ in range(h)]

for i in range(n):
    l, d, x, y = map(int, input().split())

    for j in range(l):
        if d == 0:
            zeros[x-1][y-1+j] = 1
        else:
            zeros[x-1+j][y-1] = 1

for i in range(h):
    for j in range(w):
        print(zeros[i][j], end=' ')
    print(end='\n')

 

 

똑같은데 반복문을 내가 불필요하게 두 번 썼네