가변 배열
Coddy GDScript 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 16번째.
2D 배열의 행은 길이가 같을 필요가 없습니다. 행마다 길이가 다른 2D 배열을 들쭉날쭉한 배열이라고 합니다. 여기서는 각 행에 한 플레이어의 점수가 저장되며, 플레이어마다 플레이한 라운드 수가 다릅니다:
var scores := [
[90, 85, 70],
[60],
[75, 80]
]
print(scores[0].size()) # 3
print(scores[1].size()) # 1들쭉날쭉한 배열에서 scores[0].size()는 모든 행의 길이가 아닙니다. 현재 행의 열을 scores[r].size()로 반복하세요:
for r in range(scores.size()):
var total := 0
for c in range(scores[r].size()):
total += scores[r][c]
print("Player ", r + 1, ": ", total)Player 1: 245
Player 2: 60
Player 3: 155첫 번째 행의 길이를 항상 사용하는 루프는 더 짧은 행의 끝을 넘어 읽습니다. scores[1][2]는 오류입니다. 1번 행에는 인덱스 0만 있기 때문입니다. for value in row는 순회하는 행의 길이에 항상 맞습니다.
들쭉날쭉한 배열은 격자처럼 만들되, 각 행의 길이를 다르게 합니다. 이 삼각형에서 행 r에는 r + 1개의 셀이 있습니다:
var triangle := []
for r in range(4):
var row := []
for c in range(r + 1):
row.append("*")
triangle.append(row)
for row in triangle:
print("".join(row))*
**
***
****행은 비어 있을 수도 있습니다. [[1, 2], [], [3]]은 세 개의 행이 있는 유효한 가변 길이 배열입니다.
챌린지
쉬움n개의 행으로 이루어진 들쭉날쭉한 배열을 반환하는, 매개변수로 int형 n 하나를 받는 make_triangle 함수를 작성하세요.
- 1행에는 셀이 1개, 2행에는 셀이 2개 있으며, 이런 식으로
n개의 셀이 있는n행까지 이어집니다. - 행과 열을 1부터 세면, 각 셀에는 행 번호와 열 번호를 곱한 값이 들어갑니다. 3행 2열의 셀에는
3 * 2 = 6이 들어갑니다.
예를 들어, make_triangle(3)은 다음을 반환합니다.
[[1], [2, 4], [3, 6, 9]]테스트에서 직접 make_triangle()을 호출하고 반환된 배열을 확인합니다. 함수를 호출하지 말고 아무것도 출력하지 마세요.
직접 해보기
func make_triangle(n: int):
# 여기에 코드를 작성하세요
pass
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 GDScript 컴파일러