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)