범위를 이용한 배열 슬라이싱
Coddy Ruby 여정의 기초 섹션에 포함된 레슨. 88개 중 69번째.
때로는 배열의 개별 요소에 접근하는 대신 배열의 일부를 추출해야 합니다. Ruby에서는 범위를 사용해 배열을 슬라이스할 수 있으며, 지정한 요소만 포함하는 새 배열이 만들어집니다.
범위를 사용해 배열을 슬라이스하려면 대괄호 안에 범위를 넣으세요:
numbers = [10, 20, 30, 40, 50]
slice = numbers[1..3]
puts slice # 출력: 20, 30, 40범위 1..3에는 인덱스 1, 2, 3에 있는 요소가 포함됩니다. 배열 인덱스는 0부터 시작하므로 인덱스 1은 두 번째 요소입니다.
마지막 인덱스를 제외하려면 세 점 범위(...)를 사용할 수도 있습니다:
letters = ["a", "b", "c", "d", "e"]
slice = letters[0...3]
puts slice # 출력: a, b, c여기서 0...3에는 인덱스 0, 1, 2가 포함되지만, 인덱스 3에 도달하기 전에 멈춥니다.
음수 인덱스는 범위에서도 작동합니다. 배열의 끝에서부터 세며, 여기서 -1은 마지막 요소입니다:
colors = ["red", "green", "blue", "yellow"]
slice = colors[1..-1]
puts slice # 출력: green, blue, yellow이렇게 하면 인덱스 1부터 마지막 요소까지 모두 추출할 수 있습니다. 배열의 길이를 모른 채 첫 번째 요소를 건너뛰고 싶을 때 유용합니다.
챌린지
쉬움두 개의 입력을 읽으세요.
- 쉼표로 구분된 정수가 한 줄에 입력됩니다(예:
10,20,30,40,50,60,70). start..end또는start...end형식의 범위 지정입니다(예:2..5또는1...4).
첫 번째 입력을 정수 배열로 나누세요. 그런 다음 두 번째 입력의 범위를 사용해 배열을 슬라이스하고, 슬라이스한 부분의 각 요소를 한 줄에 하나씩 출력하세요.
범위 입력에서 끝 인덱스를 포함하려면 점 두 개(..)를 사용하고, 제외하려면 점 세 개(...)를 사용합니다.
예를 들어, 입력이 10,20,30,40,50,60,70과 2..5라면 출력은 다음과 같아야 합니다.
30
40
50
60입력이 5,10,15,20,25,30과 0...3이라면 출력은 다음과 같아야 합니다.
5
10
15입력이 100,200,300,400,500과 1..-1이라면 출력은 다음과 같아야 합니다.
200
300
400
500입력이 a,b,c,d,e,f와 -3..-1이라면 출력은 다음과 같아야 합니다.
d
e
f직접 해보기
# 쉼표로 구분된 값들을 읽습니다
input_values = gets.chomp
# 범위 지정 정보를 읽습니다
range_spec = gets.chomp
# TODO: 아래에 코드를 작성하세요
# 1. input_values를 배열로 분리합니다
# 2. range_spec을 파싱하여 시작점, 끝점, 그리고 .. 또는 ... 중 무엇을 사용할지 결정합니다
# 3. 적절한 범위를 사용해 배열을 슬라이싱합니다
# 4. 슬라이싱한 부분의 각 요소를 한 줄에 하나씩 출력합니다이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 Ruby 컴파일러