Menu
Coddy logo textTech

요약 - 파이프라인 빌더

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

challenge icon

챌린지

중급

클로저로 구동되는 작은 데이터 파이프라인을 구축하세요.

세 줄을 읽어 들입니다:

  1. 정수 min
  2. 정수 scale
  3. 쉼표로 구분된 정수 리스트

두 개의 클로저 팩토리를 정의하세요:

  • makeFilter(min: Int) -> (Int) -> Bool: min을 캡처하고 서술어 n > min을 반환합니다.
  • makeScaler(by: Int) -> (Int) -> Int: by를 캡처하고 이를 곱하는 함수를 반환합니다.

그런 다음, 먼저 필터링한 후 변환을 수행하는 함수 pipeline(_ nums: [Int], filter: (Int) -> Bool, transform: (Int) -> Int) -> [Int]를 정의하세요.

세 줄을 출력합니다:

  1. 필터를 통과한 숫자들을 ,로 연결하여 출력
  2. 스케일링된 후의 동일한 숫자들을 ,로 연결하여 출력
  3. 스케일링된 값들의 합계

입력값이 5 / 3 / 2,7,3,8,9인 경우, 출력값은 다음과 같습니다:

7,8,9
21,24,27
72

직접 해보기

let minVal = Int(readLine()!)!
let scale = Int(readLine()!)!
let nums = readLine()!.components(separatedBy: ",").map { Int($0)! }

// TODO: 클로저를 반환하는 makeFilter / makeScaler; pipeline(_:filter:transform:);
// 그 다음 필터링된 값, 스케일링된 값, 그리고 스케일링된 값들의 합계를 출력

로직 및 흐름의 모든 레슨