인덱스를 이용한 배열 슬라이싱
Coddy Ruby 여정의 기초 섹션에 포함된 레슨 — 88개 중 70번째.
Ruby는 시작 인덱스와 길이를 사용하여 배열을 슬라이스하는 또 다른 방법을 제공합니다. 범위를 지정하는 대신, 시작 위치와 추출할 요소의 개수라는 두 개의 숫자를 제공합니다.
이 구문은 쉼표를 사용하여 시작 인덱스와 개수를 구분합니다:
numbers = [10, 20, 30, 40, 50]
slice = numbers[1, 3]
puts slice # 출력: 20, 30, 40이것은 인덱스 1부터 시작하여 3개의 요소를 추출합니다. 첫 번째 숫자는 시작 위치이고, 두 번째는 원하는 요소의 개수입니다.
이 접근 방식은 필요한 요소의 개수를 정확히 알고 있을 때 특히 유용합니다:
letters = ["a", "b", "c", "d", "e"]
first_two = letters[0, 2]
puts first_two # 출력: a, b음수 인덱스도 여기서 작동합니다. 배열의 끝에서부터 시작할 수 있습니다:
colors = ["red", "green", "blue", "yellow"]
last_two = colors[-2, 2]
puts last_two # 출력: blue, yellow사용 가능한 요소보다 더 많은 요소를 요청하면, Ruby는 오류를 발생시키지 않고 존재하는 요소만 반환합니다:
nums = [1, 2, 3]
slice = nums[1, 10]
puts slice # 출력: 2, 3필요한 요소의 개수를 알고 있을 때는 이 방법을 선택하고, 정확한 위치를 알고 있을 때는 범위를 사용하세요.
챌린지
쉬움세 개의 입력을 읽으십시오:
- 쉼표로 구분된 정수들이 포함된 한 줄 (예:
5,10,15,20,25,30,35,40) - 시작 인덱스 (정수)
- 추출할 요소의 개수 (정수)
첫 번째 입력을 정수 배열로 분할하십시오. 시작 인덱스와 개수를 사용하여 인덱스-길이(index-and-length) 구문으로 배열을 슬라이스한 다음, 슬라이스된 부분의 각 요소를 개별 줄에 출력하십시오.
예를 들어, 입력이 5,10,15,20,25,30,35,40, 2, 4라면 출력은 다음과 같아야 합니다:
15
20
25
30입력이 100,200,300,400,500, 0, 2라면 출력은 다음과 같아야 합니다:
100
200입력이 a,b,c,d,e,f,g, -3, 2라면 출력은 다음과 같아야 합니다:
e
f입력이 10,20,30, 1, 10이라면 출력은 다음과 같아야 합니다:
20
30치트 시트
Ruby에서는 시작 인덱스와 길이를 사용하여 배열을 슬라이싱할 수 있습니다. 구문은 쉼표를 사용하여 시작 인덱스와 개수를 구분합니다:
array[start_index, length]기본 예제:
numbers = [10, 20, 30, 40, 50]
slice = numbers[1, 3]
puts slice # Outputs: 20, 30, 40첫 번째 숫자는 시작 위치이고, 두 번째 숫자는 추출할 요소의 개수입니다.
이 구문에서는 음수 인덱스도 작동하므로 배열의 끝에서부터 시작할 수 있습니다:
colors = ["red", "green", "blue", "yellow"]
last_two = colors[-2, 2]
puts last_two # Outputs: blue, yellow사용 가능한 요소보다 더 많은 요소를 요청하면, Ruby는 오류를 발생시키지 않고 존재하는 요소만 반환합니다:
nums = [1, 2, 3]
slice = nums[1, 10]
puts slice # Outputs: 2, 3직접 해보기
# 입력 읽기
input_line = gets.chomp
start_index = gets.chomp.to_i
count = gets.chomp.to_i
# 입력을 배열로 분할
arr = input_line.split(',')
# TODO: 아래에 인덱스와 길이 구문을 사용하여 배열을 슬라이스하는 코드를 작성하세요
# 그리고 각 요소를 개별 줄에 출력하세요이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.