Menu
Coddy logo textTech

범위를 이용한 배열 슬라이싱

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 직전에서 멈춥니다.

음수 인덱스는 범위(range)에서도 작동합니다. 배열의 끝에서부터 거꾸로 세며, -1은 마지막 요소를 나타냅니다:

colors = ["red", "green", "blue", "yellow"]
slice = colors[1..-1]

puts slice  # 출력: green, blue, yellow

이것은 인덱스 1부터 마지막 요소까지 모든 것을 추출하며, 배열의 길이를 모르는 상태에서 첫 번째 요소를 건너뛰고 싶을 때 유용합니다.

challenge icon

챌린지

쉬움

두 개의 입력을 읽으십시오:

  1. 쉼표로 구분된 정수들이 포함된 한 줄 (예: 10,20,30,40,50,60,70)
  2. start..end 또는 start...end 형식의 범위 지정 (예: 2..5 또는 1...4)

첫 번째 입력을 정수 배열로 분할하십시오. 그런 다음 두 번째 입력의 범위를 사용하여 배열을 슬라이스하고, 슬라이스된 부분의 각 요소를 개별 줄에 출력하십시오.

범위 입력은 마지막 인덱스를 포함하기 위해 두 개의 점(..)을 사용하거나, 마지막 인덱스를 제외하기 위해 세 개의 점(...)을 사용합니다.

예를 들어, 입력이 10,20,30,40,50,60,702..5라면, 출력은 다음과 같아야 합니다:

30
40
50
60

입력이 5,10,15,20,25,300...3라면, 출력은 다음과 같아야 합니다:

5
10
15

입력이 100,200,300,400,5001..-1라면, 출력은 다음과 같아야 합니다:

200
300
400
500

입력이 a,b,c,d,e,f-3..-1라면, 출력은 다음과 같아야 합니다:

d
e
f

치트 시트

배열의 일부를 추출하려면 대괄호 안에 범위를 사용하세요:

numbers = [10, 20, 30, 40, 50]
slice = numbers[1..3]
# Returns [20, 30, 40] (indexes 1, 2, and 3)

마지막 인덱스를 포함하려면 마침표 두 개(..)를 사용하세요:

letters = ["a", "b", "c", "d", "e"]
slice = letters[0..2]
# Returns ["a", "b", "c"] (indexes 0, 1, and 2)

마지막 인덱스를 제외하려면 마침표 세 개(...)를 사용하세요:

letters = ["a", "b", "c", "d", "e"]
slice = letters[0...3]
# Returns ["a", "b", "c"] (indexes 0, 1, and 2, stops before 3)

음수 인덱스는 배열의 끝에서부터 계산합니다(-1은 마지막 요소입니다):

colors = ["red", "green", "blue", "yellow"]
slice = colors[1..-1]
# Returns ["green", "blue", "yellow"] (from index 1 to the last element)

직접 해보기

# 쉼표로 구분된 값들을 읽습니다
input_values = gets.chomp

# 범위 사양을 읽습니다
range_spec = gets.chomp

# TODO: 아래에 코드를 작성하세요
# 1. input_values를 분할하여 배열로 만듭니다
# 2. range_spec을 분석하여 시작, 끝, 그리고 .. 또는 ... 사용 여부를 결정합니다
# 3. 적절한 범위를 사용하여 배열을 슬라이스합니다
# 4. 슬라이스된 부분의 각 요소를 개별 줄에 출력합니다
quiz icon실력 점검

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

기초의 모든 레슨