리스트 뒤집기
Coddy Dart 여정의 로직 & 흐름 섹션에 포함된 레슨 — 65개 중 3번째.
때때로 리스트의 요소를 역순으로 확인해야 할 때가 있습니다. Dart는 원본 리스트를 변경하지 않고 리스트의 역순 뷰를 생성하는 .reversed 속성을 제공합니다.
.reversed 속성은 리스트 요소를 역순으로 나타내는 이터러블(iterable)을 반환합니다. 이는 마지막 요소가 첫 번째로 나타나고, 끝에서 두 번째 요소가 두 번째로 나타나는 식임을 의미합니다.
List<int> numbers = [1, 2, 3, 4, 5];
var reversedNumbers = numbers.reversed;
print(reversedNumbers); // (5, 4, 3, 2, 1)
// 원본 리스트는 변경되지 않은 상태로 유지됩니다
print(numbers); // [1, 2, 3, 4, 5]중요한 세부 사항은 .reversed가 리스트가 아닌 반복 가능한 객체(iterable)를 반환한다는 점입니다. 리스트로 작업해야 하는 경우, .toList()를 사용하여 변환할 수 있습니다. 이 속성은 원본 리스트를 그대로 유지하면서 데이터를 역순으로 처리해야 할 때 특히 유용합니다.
챌린지
쉬움도서 목록을 분석하여 원래 순서와 역순으로 모두 표시하는 프로그램을 작성하세요. 프로그램의 요구 사항은 다음과 같습니다:
- 독서 목록의 제목을 나타내는 문자열 입력을 읽습니다.
- 도서 제목들을 나타내는 여러 개의 문자열 입력을 읽습니다 (빈 문자열이 입력될 때까지 계속 읽습니다).
.reversed속성을 사용하여 도서 목록의 역순 뷰(view)를 생성합니다.- 아래에 표시된 정확한 형식으로 독서 목록 분석 결과를 출력합니다.
예를 들어, 독서 목록 제목이 "Summer Reading"이고 도서들이 "1984", "To Kill a Mockingbird", "The Great Gatsby"라면, 프로그램은 다음과 같이 출력해야 합니다:
Reading List: Summer Reading
Books in original order: (1984, To Kill a Mockingbird, The Great Gatsby)
Books in reversed order: (The Great Gatsby, To Kill a Mockingbird, 1984)
Total books: 3독서 목록 제목이 "Quick Reads"이고 "Animal Farm"이라는 책 한 권만 제공된 경우, 프로그램은 다음과 같이 출력해야 합니다:
Reading List: Quick Reads
Books in original order: (Animal Farm)
Books in reversed order: (Animal Farm)
Total books: 1프로그램은 반드시 .reversed 속성을 사용하여 도서를 역순으로 표시해야 합니다. .reversed는 iterable을 반환하므로, 이를 출력할 때 대괄호가 아닌 소괄호와 함께 표시된다는 점을 기억하세요.
치트 시트
.reversed 속성을 사용하여 원본 리스트를 수정하지 않고 리스트 요소를 역순으로 볼 수 있습니다:
List<int> numbers = [1, 2, 3, 4, 5];
var reversedNumbers = numbers.reversed;
print(reversedNumbers); // (5, 4, 3, 2, 1)
// 원본 리스트는 변경되지 않은 상태로 유지됩니다
print(numbers); // [1, 2, 3, 4, 5].reversed 속성은 리스트가 아닌 iterable을 반환합니다. 다시 리스트로 변환하려면 .toList()를 사용하세요.
직접 해보기
import 'dart:io';
void main() {
// 독서 목록 제목 읽기
String? title = stdin.readLineSync();
// 빈 문자열이 나올 때까지 책 제목 읽기
List<String> books = [];
String? book;
while ((book = stdin.readLineSync()) != null && book!.isNotEmpty) {
books.add(book);
}
// TODO: 여기에 코드를 작성하세요
// .reversed 속성을 사용하여 books 리스트의 역순 뷰를 생성하세요
// 요구된 형식으로 출력을 프린트하세요
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
로직 & 흐름의 모든 레슨
1고급 리스트 조작
리스트 속성: first 및 last리스트 상태: isEmpty 및 isNotEmpty리스트 뒤집기리스트에 추가: insert리스트 요소 제거: removeWhere리스트에서 찾기: indexOf리스트 정렬리스트 섞기요약 - 리스트 정리 도구