n개의 줄에 걸쳐 각 n개의 숫자를 공백을 사이에 두고 입력받는 코드
n = 4
arr_2d = []
for _ in range(n):
arr_1d = list(map(int, input().split()))
arr_2d.append(arr_1d)
print(arr_2d)
>> 출력 결과
[[1, 2, 3, 4], [7, 8, 9, 10], [11, 12, 13, 14], [15, 16, 17, 18]]
list comprehension을 이용할 수 있습니다.n = 4
arr_2d = [
list(map(int, input().split()))
for _ in range(n)
]
print(arr_2d)
"""
i/j 0 1 2 3
0 1 2 3 4
1 7 8 9 10
2 11 12 13 14
3 15 16 17 18
"""
arr_2d = [[1, 2, 3, 4], [7, 8, 9, 10], [11, 12, 13, 14], [15, 16, 17, 18]]
print(arr_2d[0][0]) # 1행 1열 -> 1
print(arr_2d[1][2]) # 2행 3열 -> 9
n * m 크기의 격자라면 다음과 같이 초기화가 가능합니다. list comprehension 사용시 n, m 위치에 유의합니다.
n, m = 4, 5
arr_2d = [
[0 for _ in range(m)] # m개의 0을 가진 리스트를 생성(열)
for _ in range(n) # n개의 행을 가진 2차원 리스트를 생성(행)
]
print(arr_2d)
>> 출력 결과
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
n = 4
arr_2d = [[1, 2, 3, 4], [7, 8, 9, 10], [11, 12, 13, 14], [15, 16, 17, 18]]
#방법 1
for i in range(n): #행
for j in range(n): #열
print(arr_2d[i][j], end=" ")
print()
#방법2
for row in arr_2d: #행
for elem in row: #열
print(elem, end=" ")
print()
입력
n = 4
출력
1 2 3 4
8 7 6 5
9 10 11 12
16 15 14 13
=> 홀수번째 행에 대해서는 우측으로 이동하며 숫자를 적어야 하고, 짝수번째 행에 대해서는 좌측으로 이동하며 숫자를 적는 식으로 코드를 작성하면 됩니다. & num 변수 사용해서 계속 더해줌
# 0으로 채워진 배열 만들기
n = 4
arr_2d = [
[0 for _ in range(n)]
for _ in range(n)
]
num = 1
# 짝수, 홀수에 따른 배열 숫자 입력(대체)
for i in range(n):
if i % 2 == 0:
for j in range(n):
arr_2d[i][j] = num
num += 1
else:
for j in range(n - 1, -1, -1):
arr_2d[i][j] = num
num += 1
# 출력
for row in arr_2d:
for elem in row:
print(elem, end=" ")
print()
어디를 기준으로 연속성이 있는지 봐야됨. if 같은 행으로 쭉 가는 경우, 행이 밖 loop 이런 식
2차 평면 상에 n개의 점이 주어졌을 때, (a, b)가 해당 점들 중 하나인지를 쉽게 판단할 수는 없을까요?
a, b = 1, 3
exists = False
for _ in range(n):
r, c = tuple(map(int, input().split()))
if r == a and c == b:
exists = True
print(exists)
a, b = 1, 3
placed = [
[0 for _ in range(10)]
for _ in range(10)
]
for _ in range(n):
r, c = tuple(map(int, input().split()))
placed[r - 1][c - 1] = 1
exists = True if placed[a - 1][b - 1] == 1 else False
print(exists)
3 3
1 1
3 2
3 3출력:1 0 0
0 0 0
0 6 9정답k = input().split()
n, m = int(k[0]), int(k[1])
arr = []
for _ in range(m):
arr.append(tuple(map(int, input().split())))
arr2 = [
[0 for _ in range(n)]
for _ in range(n)
]
for i in range(1, n+1):
for j in range(1, n+1):
if (i, j) in arr: #헷갈림 - tuple이므로 ( , )
arr2[i-1][j-1] = i*j
for i in range(n):
for j in range(n):
print(arr2[i][j], end =" ")
print()