요약 - 리스트 정리 도구
Coddy Dart 여정의 로직 & 흐름 섹션에 포함된 레슨 — 65개 중 9번째.
챌린지
쉬움숫자 리스트에 대해 여러 작업을 순차적으로 수행하여 데이터 처리 파이프라인을 관리하는 프로그램을 작성하세요. 프로그램의 요구 사항은 다음과 같습니다:
- 데이터셋 이름을 나타내는 문자열 입력을 읽습니다.
- 원본 데이터 값을 나타내는 여러 정수 입력을 읽습니다 (입력은
-999를 받으면 종료됩니다). - 리스트의 시작 부분(인덱스 0)에
100값을 삽입합니다. removeWhere()를 사용하여 리스트에서 모든 음수를 제거합니다.sort()를 사용하여 남은 숫자들을 오름차순으로 정렬합니다.isEmpty를 사용하여 최종 리스트가 비어 있는지 확인합니다.- 데이터 처리 결과를 아래에 표시된 정확한 형식으로 출력합니다.
예를 들어, 데이터셋 이름이 "Sales Data"이고 값이 45, -12, 78, -5, 23인 경우, 프로그램은 다음과 같이 출력해야 합니다:
Dataset: Sales Data
Original data: [45, -12, 78, -5, 23]
Step 1: Inserted 100 at beginning
After insertion: [100, 45, -12, 78, -5, 23]
Step 2: Removed negative numbers
After removal: [100, 45, 78, 23]
Step 3: Sorted in ascending order
After sorting: [23, 45, 78, 100]
Final result: List is not empty
Processing complete: 4 values remaining데이터셋 이름이 "Temperature Readings"이고 값이 -10, -5, -20인 경우, 프로그램은 다음과 같이 출력해야 합니다:
Dataset: Temperature Readings
Original data: [-10, -5, -20]
Step 1: Inserted 100 at beginning
After insertion: [100, -10, -5, -20]
Step 2: Removed negative numbers
After removal: [100]
Step 3: Sorted in ascending order
After sorting: [100]
Final result: List is not empty
Processing complete: 1 values remaining데이터셋 이름이 "Error Values"이고 유일한 값이 -50인 경우, 프로그램은 다음과 같이 출력해야 합니다:
Dataset: Error Values
Original data: [-50]
Step 1: Inserted 100 at beginning
After insertion: [100, -50]
Step 2: Removed negative numbers
After removal: [100]
Step 3: Sorted in ascending order
After sorting: [100]
Final result: List is not empty
Processing complete: 1 values remaining프로그램은 반드시 지정된 정확한 순서대로 모든 작업을 수행해야 합니다: 먼저 인덱스 0에 insert()로 100을 삽입하고, 그 다음 removeWhere()를 사용하여 음수를 제거하고, 리스트를 sort()한 후, 마지막으로 리스트가 isEmpty인지 확인합니다. 최종 리스트에 요소가 없으면 "List is empty"를 출력하고, 요소가 있으면 "List is not empty"를 출력하세요.
직접 해보기
import 'dart:io';
void main() {
// 데이터셋 이름 읽기
String? datasetName = stdin.readLineSync();
// -999가 입력될 때까지 숫자 읽기
List<int> originalData = [];
while (true) {
int? number = int.parse(stdin.readLineSync()!);
if (number == -999) {
break;
}
originalData.add(number);
}
// 초기 정보 출력
print('Dataset: $datasetName');
print('Original data: $originalData');
// TODO: 아래에 코드를 작성하세요
// 1. 맨 앞(0번 인덱스)에 100 삽입
// 2. removeWhere()를 사용하여 모든 음수 제거
// 3. sort()를 사용하여 리스트를 오름차순으로 정렬
// 4. isEmpty를 사용하여 리스트가 비어 있는지 확인
// 5. 요구되는 형식으로 결과 출력
}로직 & 흐름의 모든 레슨
1고급 리스트 조작
리스트 속성: first 및 last리스트 상태: isEmpty 및 isNotEmpty리스트 뒤집기리스트에 추가: insert리스트 요소 제거: removeWhere리스트에서 찾기: indexOf리스트 정렬리스트 섞기요약 - 리스트 정리 도구