Menu
Coddy logo textTech

요약 - 리스트 정리 도구

Coddy Dart 여정의 로직 & 흐름 섹션에 포함된 레슨 — 65개 중 9번째.

challenge icon

챌린지

쉬움

숫자 리스트에 대해 여러 작업을 순차적으로 수행하여 데이터 처리 파이프라인을 관리하는 프로그램을 작성하세요. 프로그램의 요구 사항은 다음과 같습니다:

  1. 데이터셋 이름을 나타내는 문자열 입력을 읽습니다.
  2. 원본 데이터 값을 나타내는 여러 정수 입력을 읽습니다 (입력은 -999를 받으면 종료됩니다).
  3. 리스트의 시작 부분(인덱스 0)에 100 값을 삽입합니다.
  4. removeWhere()를 사용하여 리스트에서 모든 음수를 제거합니다.
  5. sort()를 사용하여 남은 숫자들을 오름차순으로 정렬합니다.
  6. isEmpty를 사용하여 최종 리스트가 비어 있는지 확인합니다.
  7. 데이터 처리 결과를 아래에 표시된 정확한 형식으로 출력합니다.

예를 들어, 데이터셋 이름이 "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. 요구되는 형식으로 결과 출력
  
}

로직 & 흐름의 모든 레슨