요약 - 리스트 프로세서
Coddy Dart 여정의 로직 & 흐름 섹션에 포함된 레슨. 65개 중 50번째.
챌린지
쉬움사용자 지정 가능한 리스트 프로세서를 만들어 고차 함수를 보여 주는 유연한 데이터 처리 시스템을 구현하세요. 프로그램은 여러 처리 함수를 만들고, 데이터 리스트에 어떤 연산이든 적용할 수 있는 메인 프로세서 함수를 사용합니다.
- 쉼표로 구분된 숫자가 포함된 문자열 입력을 읽습니다(예:
"10,20,30,40"). - 첫 번째 연산 유형을 나타내는 문자열 입력을 읽습니다(
"multiply","add"또는"subtract"). - 첫 번째 연산에 사용할 값을 나타내는 문자열 입력을 읽습니다(예:
"3"). - 두 번째 연산 유형을 나타내는 문자열 입력을 읽습니다(
"multiply","add"또는"subtract"). - 두 번째 연산에 사용할 값을 나타내는 문자열 입력을 읽습니다(예:
"5"). - 첫 번째 입력을 개별 숫자로 분리하고 각 숫자를 정수로 변환합니다.
- 세 가지 연산 함수를 만듭니다.
multiplyBy- 두 정수를 받아 첫 번째 정수에 두 번째 정수를 곱한 값을 반환합니다.addTo- 두 정수를 받아 두 정수의 합을 반환합니다.subtractFrom- 두 정수를 받아 첫 번째 정수에서 두 번째 정수를 뺀 값을 반환합니다.- 다음 세 가지 매개변수를 받는
processListWithOperation이라는 메인 함수를 만듭니다. - 정수 리스트
- 두 정수를 받아 정수를 반환하는 함수
- 연산에 사용할 정수 값
processListWithOperation함수는 제공된 값을 사용해 리스트의 각 숫자에 주어진 함수를 적용하고, 결과가 담긴 새 리스트를 반환해야 합니다.- 첫 번째 연산을 원래 리스트에 적용한 다음, 첫 번째 연산의 결과에 두 번째 연산을 적용합니다.
- 아래에 표시된 정확한 형식으로 결과를 출력합니다.
예를 들어 입력이 "2,4,6", "multiply", "3", "add", "10"이면 프로그램은 다음을 출력해야 합니다.
Advanced List Processor
=======================
Original list: [2, 4, 6]
First operation: multiply by 3
After first operation: [6, 12, 18]
Second operation: add 10
Final result: [16, 22, 28]
Processing completed successfully입력이 "15,25,35", "subtract", "5", "multiply", "2"이면 프로그램은 다음을 출력해야 합니다.
Advanced List Processor
=======================
Original list: [15, 25, 35]
First operation: subtract 5
After first operation: [10, 20, 30]
Second operation: multiply by 2
Final result: [20, 40, 60]
Processing completed successfully연산 유형 입력에 따라 적절한 연산 함수를 processListWithOperation에 전달하여 고차 함수를 보여 주어야 합니다. 각 연산에 전달할 함수를 결정할 때 조건문을 사용하세요. processListWithOperation 함수는 입력 리스트를 순회하며, 제공된 값을 사용해 각 요소에 주어진 함수를 적용하고 결과를 새 리스트에 모아야 합니다. 연산은 순차적으로 적용하며, 두 번째 연산의 입력으로 첫 번째 연산의 결과를 사용하세요.
직접 해보기
import 'dart:io';
void main() {
// 입력값 읽기
String? numbersInput = stdin.readLineSync();
String? firstOperation = stdin.readLineSync();
String? firstValue = stdin.readLineSync();
String? secondOperation = stdin.readLineSync();
String? secondValue = stdin.readLineSync();
// 문자열 입력을 정수 리스트로 변환하기
List<int> originalList = numbersInput!.split(',').map((e) => int.parse(e.trim())).toList();
int firstOpValue = int.parse(firstValue!);
int secondOpValue = int.parse(secondValue!);
// TODO: 아래에 코드를 작성하세요
// 세 가지 연산 함수 multiplyBy, addTo, subtractFrom 만들기
// processListWithOperation 함수 만들기
// 연산을 순서대로 적용하고 결과 저장하기
// 요구된 형식으로 결과 출력하기
print('Advanced List Processor');
print('=======================');
print('Original list: $originalList');
// 첫 번째 연산과 결과 출력하기
// 두 번째 연산과 최종 결과 출력하기
print('Processing completed successfully');
}로직 & 흐름의 모든 레슨
1고급 리스트 조작
리스트 속성: first 및 last리스트 상태: isEmpty 및 isNotEmpty리스트 뒤집기리스트에 추가: insert리스트 요소 제거: removeWhere리스트에서 찾기: indexOf리스트 정렬리스트 섞기요약 - 리스트 정리 도구직접 연습해 보세요: 온라인 Dart 컴파일러