Menu
Coddy logo textTech

배열 단축 표기법

Coddy Ruby 여정의 기초 섹션에 포함된 레슨 — 88개 중 64번째.

Ruby는 특히 문자열이나 연속된 숫자를 다룰 때 배열을 생성하기 위한 편리한 단축 방식을 제공합니다. 이러한 단축 방식들은 시간을 절약해 주고 코드를 더 깔끔하게 만들어 줍니다.

%w 구문은 따옴표나 쉼표 없이 문자열 배열을 생성합니다:

fruits = %w[apple banana cherry]
puts fruits  # 출력: apple, banana, cherry

이것은 ["apple", "banana", "cherry"]를 작성하는 것과 동일하지만 훨씬 더 간결합니다. 공백으로 구분된 각 단어는 별개의 요소가 됩니다.

심볼 배열의 경우, %i를 사용합니다:

statuses = %i[pending active completed]
puts statuses  # 출력: pending, active, completed

연속된 숫자의 배열을 생성하려면, to_a를 사용하여 범위를 배열로 변환할 수 있습니다:

numbers = (1..5).to_a
puts numbers  # 출력: 1, 2, 3, 4, 5

또한 배열 대괄호 안에서 스플랫 연산자 *를 사용할 수 있습니다:

countdown = [*5..10]
puts countdown  # 출력: 5, 6, 7, 8, 9, 10

이러한 단축키는 따옴표와 쉼표로 인한 시각적 복잡함 없이 알려진 값의 목록을 빠르게 정의해야 할 때 특히 유용합니다.

challenge icon

챌린지

쉬움

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

  1. 공백으로 구분된 단어들이 포함된 한 줄 (예: red green blue yellow)
  2. 범위를 나타내는 쉼표로 구분된 두 개의 정수 (예: 3,7)

다음 작업을 수행하십시오:

  1. 첫 번째 입력에서 split을 사용하여 문자열 배열을 생성하십시오. 입력이 이미 문자열이므로 먼저 split을 사용하여 배열로 변환한 다음, alpha, beta, gamma 단어를 포함하는 별도의 배열을 만들어 %w 단축 구문을 시연하십시오.
  2. %i를 사용하여 start, middle, end 값을 가진 심볼 배열을 생성하십시오.
  3. 두 번째 입력에서 제공된 범위를 사용하여 배열 대괄호 안에서 스플랫 연산자 *를 이용해 연속된 숫자 배열을 생성하십시오.

다음 내용을 각각 별도의 줄에 출력하십시오:

  1. 입력받은 단어 배열의 각 요소
  2. 빈 줄 하나
  3. %w 배열의 각 요소 (alpha, beta, gamma)
  4. 빈 줄 하나
  5. %i 심볼 배열의 각 요소
  6. 빈 줄 하나
  7. 숫자 범위 배열의 각 요소

예를 들어, 입력이 red green blue1,5라면 출력은 다음과 같아야 합니다:

red
green
blue

alpha
beta
gamma

start
middle
end

1
2
3
4
5

입력이 sun moon star10,13이라면 출력은 다음과 같아야 합니다:

sun
moon
star

alpha
beta
gamma

start
middle
end

10
11
12
13

치트 시트

Ruby는 코드를 더 깔끔하고 간결하게 만들어주는 배열 생성 단축키를 제공합니다.

%w 구문은 따옴표나 쉼표 없이 문자열 배열을 생성합니다:

fruits = %w[apple banana cherry]
# ["apple", "banana", "cherry"]와 동일함

%i 구문은 심볼 배열을 생성합니다:

statuses = %i[pending active completed]
# [:pending, :active, :completed]와 동일함

to_a를 사용하여 범위를 배열로 변환합니다:

numbers = (1..5).to_a
# [1, 2, 3, 4, 5]를 생성함

배열 대괄호 안에 스플랫 연산자 *를 사용하여 범위로부터 배열을 생성합니다:

countdown = [*5..10]
# [5, 6, 7, 8, 9, 10]을 생성함

직접 해보기

# 공백으로 구분된 단어들을 읽습니다
words_input = gets.chomp

# 범위를 읽습니다 (쉼표로 구분된 두 개의 정수)
range_input = gets.chomp

# TODO: 아래에 코드를 작성하세요
# 1. split을 사용하여 words_input으로부터 배열을 생성합니다
# 2. alpha, beta, gamma를 포함하는 %w 배열을 생성합니다
# 3. start, middle, end를 포함하는 %i 배열을 생성합니다
# 4. 범위를 파싱하고 스플랫 연산자(*)를 사용하여 배열을 생성합니다

# 각 배열의 요소를 별도의 줄에 출력하고 배열 사이에 빈 줄을 넣습니다
quiz icon실력 점검

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

기초의 모든 레슨