Programming/Python

[CodeUp][Python 기초 100제] 6096~6098 문제를 풀면서 알게 된 점

gayeon_ 2025. 6. 11. 22:24

6096~6098번 문제에서 알게 된 점


1. 리스트 문제

# 좌표의 행, 열의 값을 1->0, 0->1로 뒤집는 문제
d = list(list(map(int, input().split())) for _ in range(19))
n = int(input())

for i in range(n):
    x, y = map(int, input().split())
    x -= 1
    y -= 1
    for j in range(19):
        if d[j][y] == 0:
            d[j][y] = 1
        else:
            d[j][y] = 0

        if d[x][j] == 0:
            d[x][j] = 1
        else:
            d[x][j] = 0

for i in range(19):
    print(*d[i])
# 0값인 2차원 배열에 1로 막대 놓기
h, w = map(int, input().split())
arr =[[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):
            arr[x-1][y-1] = 1
            y += 1
    else:
        for j in range(l):
            arr[x-1][y-1] = 1
            x += 1

for a in range(h):
    for b in range(w):
        print(arr[a][b], end=' ')
    print()
# 성실한 개미 문제
arr = []

for i in range(10):
    arr.append(list(map(int, input().split())))

x, y = 1, 1  # 개미 출발 위치 (2,2) → 0-indexed 기준으론 (1,1)

while True:
    if arr[x][y] == 2:  # 먹이를 발견하면
        arr[x][y] = 9
        break
    elif arr[x][y] == 0:  # 길이면
        arr[x][y] = 9
    elif arr[x][y] == 1:  # 벽이면 멈춤
        break

    if arr[x][y + 1] != 1:  # 오른쪽으로 갈 수 있으면
        y += 1
    elif arr[x + 1][y] != 1:  # 아래로 갈 수 있으면
        x += 1
    else:  # 오른쪽, 아래 모두 벽이면 종료
        break

# 출력
for row in arr:
    print(*row)