최솟값과 최댓값 찾기
Coddy GDScript 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 50번째.
배열에는 가장 작은 요소와 가장 큰 요소를 반환하는 min() 및 max() 메서드가 있습니다:
var temps := [18, 25, 9, 31, 22]
print(temps.min()) # 9
print(temps.max()) # 31전역 함수 min()과 max()는 전달한 숫자를 비교하므로, 값이 두세 개일 때 유용합니다:
print(max(4, 12, 7)) # 12
var hp: int = min(120, 100) # 100, 절대 100을 넘지 않음문자열은 유니코드 코드에 따라 문자별로 비교됩니다. 모든 대문자는 모든 소문자보다 앞에 옵니다:
var words := ["kiwi", "apple", "Fig"]
print(words.min()) # Fig
print(words.max()) # kiwi텍스트로 저장된 숫자에도 같은 규칙이 적용됩니다. 문자 9가 5 뒤에 오기 때문에 "9"는 "56"보다 큽니다. 숫자를 비교하기 전에 int()를 사용해 입력을 변환하세요.
빈 배열에서는 두 메서드 모두 null을 반환합니다. 가장 큰 값이 어디에 있는지 찾으려면 해당 값을 find()에 전달하세요. temps.find(temps.max())는 3입니다. 딕셔너리에서는 값 중 가장 큰 값을 구한 다음, find_key()로 해당 키를 찾으세요. 이 메서드는 그 값을 가진 첫 번째 키를 반환합니다.
var scores := {"Mia": 120, "Leo": 95, "Ana": 140}
var best: int = scores.values().max()
print(scores.find_key(best), " ", best) # Ana 140max()는 모든 유형의 값을 반환하므로, :=를 쓰는 대신 변수의 유형을 선언하세요(var best: int).
챌린지
쉬움프로그램은 두 줄을 읽습니다. 첫 번째 줄에는 공백으로 구분된 정수가, 두 번째 줄에는 공백으로 구분된 단어가 있습니다. 각 줄에는 값이 하나 이상 있습니다.
min()과 max()를 사용해 가장 작은 수와 가장 큰 수를 출력한 다음, 가장 작은 단어와 가장 큰 단어를 출력하세요. 숫자는 텍스트가 아닌 숫자로 비교하세요. 입력이 42 17 23 56 9 34와 kiwi apple banana cherry date일 때 출력은 다음과 같습니다.
Smallest number: 9
Largest number: 56
Smallest word: apple
Largest word: kiwi직접 해보기
extends Node
func _ready():
var number_texts := OS.read_string_from_stdin().split(" ", false)
var words := Array(OS.read_string_from_stdin().split(" ", false))
# 숫자를 int로 변환한 다음 네 개의 결과를 출력하세요
pass
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 GDScript 컴파일러