1. 2차원 배열 입력
n개의 줄에 걸쳐 각 n개의 숫자를 공백을 사이에 두고 입력받는 코드 작성하는 방법
n = 4
for _ in range(n):
arr = list(map(int, input().split()))
sum_val = sum(arr)
print(sum_val)
입력
1 2 3 4
7 8 9 10
11 12 13 14
15 16 17 18
출력
10
34
50
66
위의 코드는 행 단위로 합을 구하는 코드이지만, 만약 열 단위로 합을 구해야 한다면 2차원 격자를 그대로 담아야 할 필요가 있음. 이를 위해서는, 2차원 배열에 대한 정의가 필요함.
의미상 2차원 배열은, 다음과 같이 각 행을 리스트라 생각했을 때 이를 각 원소로 갖는 리스트라 생각할 수 있음
[[1, 2, 3, 4], [7, 8, 9, 10], [11, 12, 13, 14], [15, 16, 17, 18]]
이는 아래와 같이 작성해볼 수 있음
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]]
n = 4
arr_2d = [
list(map(int, input().split()))
for _ in range(n)
]
print(arr_2d)
>> 출력 결과
[[1, 2, 3, 4], [7, 8, 9, 10], [11, 12, 13, 14], [15, 16, 17, 18]]
2. 2차원 배열에서 원소에 대한 접근
- 2차원 배열에서 원소에 대한 접근은 arr_2d[i][j]와 같은 형태로 이용
- arr_2d[i][j]는 i+1행, j+1열을 의미함
"""
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
특정 위치의 원소 값을 바꾸는 것 역시 1차원 배열에서 하던 것과 마찬가지로 = 연산을 이용하여 표현이 가능함
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
arr_2d[0][0] = 15
print(arr_2d[0][0]) # 1행 1열 -> 15
2차원 배열에서 len() 함수를 이용하면 행 수가 반환됨
arr_2d = [[1, 2, 3, 4], [7, 8, 9, 10], [11, 12, 13, 14], [15, 16, 17, 18]]
print(len(arr_2d)) # 행의 개수 -> 4
'Python' 카테고리의 다른 글
[코드트리 조별과제] #09. 문자열 입력받아 출력하기, 문자열 리스트 관리 (0) | 2024.08.12 |
---|---|
[코드트리 조별과제] #08. 새로운 2차원 배열 선언과 활용 (0) | 2024.08.11 |
[코드트리 조별과제] #06. 리스트에서 주어진 숫자들 중 최댓값/최솟값 구하기 (0) | 2024.08.05 |
[코드트리 조별과제] #05. 특정 문자가 입력될 때까지 여러 줄 입력 받기 (0) | 2024.08.04 |
[코드트리 조별과제] #04. 특정 위치의 문자 enumerate, 특정 원소의 개수 count (0) | 2024.08.03 |