요약 - 데이터 필터링
Coddy Dart 여정의 로직 & 흐름 섹션에 포함된 레슨. 65개 중 16번째.
챌린지
쉬움수치 데이터셋을 필터링, 변환 및 처리하여 데이터 분석 파이프라인을 관리하는 프로그램을 작성하세요. 프로그램의 요구 사항은 다음과 같습니다:
- 데이터셋 이름을 나타내는 문자열 입력을 읽습니다.
- 원시 데이터 값을 나타내는 여러 개의 정수 입력을 읽습니다 (입력은
-1을 받으면 종료됩니다). - 필터링을 위한 최소값 임계값(threshold)을 나타내는 정수 입력을 읽습니다.
where()메서드를 사용하여 임계값보다 큰 값들을 필터링합니다.map()메서드를 사용하여 필터링된 각 값을 제곱합니다.toList()메서드를 사용하여 최종 결과를 리스트로 변환합니다.- 아래에 표시된 정확한 형식으로 데이터 처리 결과를 출력합니다.
예를 들어, 데이터셋 이름이 "Sales Data"이고, 원시 값이 2, 5, 1, 8, 3, 6이며, 임계값이 3인 경우 프로그램은 다음과 같이 출력해야 합니다:
Dataset: Sales Data
Raw data: [2, 5, 1, 8, 3, 6]
Threshold: 3
Filtering values > 3
Filtered values: (5, 8, 6)
Squaring filtered values
Squared values: (25, 64, 36)
Final processed data: [25, 64, 36]
Processing complete: 3 values processed데이터셋 이름이 "Temperature Readings"이고, 원시 값이 1, 2이며, 임계값이 5인 경우 프로그램은 다음과 같이 출력해야 합니다:
Dataset: Temperature Readings
Raw data: [1, 2]
Threshold: 5
Filtering values > 5
Filtered values: ()
Squaring filtered values
Squared values: ()
Final processed data: []
Processing complete: 0 values processed데이터셋 이름이 "Performance Metrics"이고, 원시 값이 4, 7, 9이며, 임계값이 2인 경우 프로그램은 다음과 같이 출력해야 합니다:
Dataset: Performance Metrics
Raw data: [4, 7, 9]
Threshold: 2
Filtering values > 2
Filtered values: (4, 7, 9)
Squaring filtered values
Squared values: (16, 49, 81)
Final processed data: [16, 49, 81]
Processing complete: 3 values processed프로그램은 반드시 다음 순서대로 연산을 체이닝해야 합니다: 먼저 where()를 사용하여 임계값보다 큰 값을 필터링하고, 그 다음 map()을 사용하여 필터링된 각 값을 제곱하며, 마지막으로 toList()를 사용하여 결과를 리스트로 변환합니다. 중간 결과는 괄호 형태의 iterable 형식으로 표시되어야 하며, 최종 리스트는 대괄호 형식으로 표시되어야 합니다.
직접 해보기
import 'dart:io';
void main() {
// 데이터셋 이름 읽기
String? datasetName = stdin.readLineSync();
// -1이 입력될 때까지 원시 데이터 값 읽기
List<int> rawData = [];
while (true) {
int value = int.parse(stdin.readLineSync()!);
if (value == -1) break;
rawData.add(value);
}
// 임계값 읽기
int threshold = int.parse(stdin.readLineSync()!);
// 초기 정보 표시
print('Dataset: $datasetName');
print('Raw data: $rawData');
print('Threshold: $threshold');
print('Filtering values > $threshold');
// TODO: 아래에 코드를 작성하세요
// where()를 사용하여 임계값보다 큰 값을 필터링하세요
// map()을 사용하여 필터링된 각 값을 제곱하세요
// toList()를 사용하여 결과를 리스트로 변환하세요
// 필요한 형식으로 결과 출력
// 필터링된 값을 괄호 형식으로 표시해야 함을 기억하세요
// 제곱된 값을 괄호 형식으로 표시하세요
// 최종 처리된 데이터를 대괄호 형식으로 표시하세요
// 개수와 함께 처리 완료 메시지를 출력하세요
}로직 & 흐름의 모든 레슨
1고급 리스트 조작
리스트 속성: first 및 last리스트 상태: isEmpty 및 isNotEmpty리스트 뒤집기리스트에 추가: insert리스트 요소 제거: removeWhere리스트에서 찾기: indexOf리스트 정렬리스트 섞기요약 - 리스트 정리 도구2함수형 리스트 연산
'map'으로 변환하기'where'로 필터링하기'.toList()' 사용하기'any'로 조건 확인하기'every'로 조건 확인하기'firstWhere'로 찾기요약 - 데이터 필터링직접 연습해 보세요: 온라인 Dart 컴파일러