Menu
Coddy logo textTech

count, all?, any?, none?

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

루프를 직접 작성할 필요 없이 컬렉션에 대한 질문에 답해주는 네 가지 작은 Enumerable 메서드입니다.

count는 블록을 만족하는 요소의 개수를 반환합니다:

[1, 2, 3, 4, 5].count { |n| n.even? }   # 2
[1, 2, 3, 4, 5].count                    # 5  (블록 없음, 전체 개수)

all?은 모든 요소가 블록을 만족할 때 true입니다:

[2, 4, 6].all? { |n| n.even? }    # true
[2, 4, 7].all? { |n| n.even? }    # false

any?는 적어도 하나가 조건을 만족하면 true입니다:

[1, 2, 3].any? { |n| n.even? }    # true
[1, 3, 5].any? { |n| n.even? }    # false

none?은 요소 중 어느 것도 조건을 만족하지 않을 때 true를 반환합니다:

[1, 3, 5].none? { |n| n.even? }   # true

이 메서드들은 단락 평가(short-circuit)를 수행하며, any?는 첫 번째 일치 항목에서 멈추고, all?는 첫 번째 실패 항목에서 멈춥니다. 이들은 효율적입니다.

challenge icon

챌린지

쉬움

쉼표로 구분된 테스트 점수(정수) 목록을 읽습니다. 다음 조건을 만족할 때 해당 학급은 유효한 통과 학급입니다:

  • 점수 중 none?(어떤 것도) 음수가 아님 (기록되지 않은 테스트)
  • all?(모든) 점수가 최대 100
  • any?(어떤) 점수 중 하나라도 정확히 100임 (최소 한 명의 만점자)
  • 최소 3개의 점수가 >= 70임 (count를 사용하세요)

정확히 한 줄을 출력합니다:

  • 네 가지 조건이 모두 충족되면 Valid: <count> passing을 출력합니다 (count>= 70인 점수의 개수입니다)
  • 그렇지 않으면 Invalid를 출력합니다

입력 72,80,100,65,90의 경우: 4개의 점수가 >= 70이고, 음수가 없으며, 모든 점수가 <= 100이고, 하나가 100이므로 출력은 Valid: 4 passing입니다.

72,80,90의 경우: 3개가 통과 기준을 넘었지만 만점이 없으므로 Invalid입니다.

치트 시트

컬렉션에 대한 질문에 답하는 네 가지 Enumerable 메서드입니다:

count – 블록을 만족하는 요소의 수를 반환합니다 (블록이 없는 경우 전체 크기 반환):

[1, 2, 3, 4, 5].count { |n| n.even? }  # 2
[1, 2, 3, 4, 5].count                   # 5

all? – 모든 요소가 블록을 만족할 때 true를 반환합니다:

[2, 4, 6].all? { |n| n.even? }  # true

any? – 최소한 하나의 요소가 블록을 만족할 때 true를 반환합니다:

[1, 2, 3].any? { |n| n.even? }  # true

none? – 어떤 요소도 블록을 만족하지 않을 때 true를 반환합니다:

[1, 3, 5].none? { |n| n.even? }  # true

이 메서드들은 단락 평가(short-circuit)를 수행합니다: any?는 첫 번째 일치 항목에서 멈추고, all?은 첫 번째 실패 항목에서 멈춥니다.

직접 해보기

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

# TODO: all?, any?, none?, count를 조합하여 Valid vs Invalid를 결정하기
quiz icon실력 점검

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

로직 및 흐름의 모든 레슨