Menu
CoddyTech

값 합산하기

Coddy GDScript 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 49번째.

GDScript에는 배열의 값을 모두 더하는 내장 함수가 없습니다. 루프와 누적 합계를 사용해 값을 더합니다. 누적 합계는 0에서 시작해 각 값을 더할 때마다 커지는 변수입니다.

var coins := [12, 30, 8, 50]
var total := 0
for amount in coins:
	total += amount
print(total) # 100

값을 시작 금액에 더하려면 총액을 그 금액으로 시작하세요. 레벨이 시작되기 전에 동전을 40개 가지고 있던 플레이어는 레벨이 끝나면 140개를 갖게 됩니다.

var total := 40
for amount in coins:
	total += amount
print(total) # 140

같은 루프는 values()를 순회할 때 딕셔너리의 값을 모두 더하고, 필드를 읽을 때 배열에 있는 각 딕셔너리의 해당 필드 값을 모두 더합니다.

var inventory := {"potion": 3, "arrow": 20, "bomb": 2}
var items := 0
for count in inventory.values():
	items += count
print(items) # 25

var party := [{"hero": "Mia", "hp": 80}, {"hero": "Leo", "hp": 65}]
var party_hp := 0
for member in party:
	party_hp += member["hp"]
print(party_hp) # 145

그룹별 합계를 하나씩 구하려면 합계를 딕셔너리에 저장하세요. 기본값이 0인 get()을 사용하면 아직 합계가 없는 그룹도 처리할 수 있습니다:

var loot := [["gold", 10], ["gems", 2], ["gold", 25]]
var totals := {}
for drop in loot:
	totals[drop[0]] = totals.get(drop[0], 0) + drop[1]
print(totals) # { "gold": 35, "gems": 2 }

평균을 구하려면 총합을 값의 개수로 나누고, 소수점이 유지되도록 먼저 float으로 변환하세요: float(total) / coins.size().

challenge icon

챌린지

쉬움

한 상점은 하루가 끝날 때 금전 등록기에 있는 총액을 알고 싶어 합니다. 프로그램은 두 줄을 읽습니다:

  1. 하루 동안의 판매액으로, 공백으로 구분된 정수입니다. 판매가 없으면 이 줄은 비어 있습니다.
  2. 하루가 시작될 때 금전 등록기에 있던 현금(정수)입니다.

시작 현금에 모든 판매액을 더하고 Total: 뒤에 결과를 출력하세요. 입력이 100 200 150 300과 50이면 출력은 다음과 같습니다:

Total: 800

직접 해보기

extends Node

func _ready():
	var sales := OS.read_string_from_stdin().split(" ", false)
	var starting_cash := int(OS.read_string_from_stdin())
	# 각 판매 금액을 시작 현금에 더하고 총액을 출력하세요
	pass
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 GDScript 컴파일러