Menu
Coddy logo textTech

select와 reject

Coddy Ruby 여정의 로직 및 흐름 섹션에 포함된 레슨. 56개 중 21번째.

select 메서드는 블록이 truthy 값을 반환하는 요소만 포함하는 새 배열을 반환합니다. Ruby에서 "filter"를 표현하는 방식입니다.

numbers = [1, 2, 3, 4, 5, 6]
evens = numbers.select { |n| n.even? }
puts evens.inspect   # [2, 4, 6]

reject는 그 반대이며, 블록이 false를 반환하는 모든 항목을 유지합니다:

odds = numbers.reject { |n| n.even? }
puts odds.inspect    # [1, 3, 5]

둘 다 새 배열을 반환하며, 원본은 변경되지 않습니다.

블록은 단지 조건식일 뿐이며, true 또는 false로 평가되는 것은 무엇이든 작동합니다:

words = ["hi", "hello", "hey", "yo"]
long  = words.select { |w| w.length >= 3 }
puts long.inspect    # ["hello", "hey"]
challenge icon

챌린지

초급

쉼표로 구분된 정수 목록을 읽습니다. 두 줄을 출력합니다:

  1. 10보다 큰 숫자(select 사용)를 , 로 결합한 결과
  2. 3으로 나누어떨어지지 않는 숫자(reject 사용)를 , 로 결합한 결과

입력이 3,7,12,15,20이면 출력은 다음과 같습니다:

12, 15, 20
7, 20

직접 해보기

numbers = gets.chomp.split(",").map(&:to_i)

# TODO: 줄 1, numbers > 10, ", "로 연결
# TODO: 줄 2, 3으로 나누어떨어지지 않는 numbers, ", "로 연결
quiz icon실력 점검

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

로직 및 흐름의 모든 레슨

직접 연습해 보세요: 온라인 Ruby 컴파일러