Range 메서드
Coddy Ruby 여정의 로직 및 흐름 섹션에 포함된 레슨 — 56개 중 7번째.
범위(Range)는 루프를 직접 작성하는 수고를 덜어주는 유용한 메서드들을 제공합니다.
include?는 특정 값이 범위에 포함되는지 확인합니다:
range = 1..10
puts range.include?(5) # true
puts range.include?(11) # falsemin, max, 그리고 size는 범위(range)에서 직접 작동합니다:
puts (1..10).min # 1
puts (1..10).max # 10
puts (1..10).size # 10step은 고정된 간격으로 범위를 반복하며, 모든 값이 필요하지 않을 때 유용합니다:
(0..10).step(2) do |n|
puts n
end
# 0, 2, 4, 6, 8, 10그리고 each는 배열에서와 똑같이 작동합니다:
(1..3).each { |n| puts n * n }
# 1
# 4
# 9챌린지
쉬움포함 범위(inclusive range)와 추측값 목록이 주어집니다. 추측값의 점수를 매기고 범위에 대한 요약을 출력하세요.
두 줄을 읽습니다:
- 공백으로 구분된 두 개의 정수:
start및end_value - 쉼표로 구분된 정수 추측값 목록
start..end_value 범위를 사용하여 다음을 출력하세요:
Hit: <n>, 여기서n은 범위 내에 포함되는 추측값의 개수입니다 (include?를 사용하세요)Span: <n>, 여기서n은 범위의size입니다Multiples of 3 sum: <n>, 여기서n은 범위 내에 있는 모든 3의 배수의 합입니다 (start와 같거나 그 이후의 첫 번째 3의 배수부터 시작하여step을 사용하세요)
첫 번째 줄에 1 10이 입력되고 두 번째 줄에 3,5,11,7,-2가 입력되면, 출력은 다음과 같습니다:
Hit: 3
Span: 10
Multiples of 3 sum: 18(Hits: 3, 5, 7. 1..10 범위 내의 3의 배수: 3+6+9 = 18.)
치트 시트
유용한 Range 메서드:
range = 1..10
range.include?(5) # true
range.min # 1
range.max # 10
range.size # 10step은 고정된 간격으로 건너뛰며 반복합니다:
(0..10).step(2) { |n| puts n }
# 0, 2, 4, 6, 8, 10each는 배열에서와 마찬가지로 작동합니다:
(1..3).each { |n| puts n * n }직접 해보기
start, end_value = gets.chomp.split.map(&:to_i)
guesses = gets.chomp.split(",").map(&:to_i)
# TODO: include?를 통한 적중 횟수, size를 통한 범위, step을 통한 3의 배수의 합
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.