Menu
Coddy logo textTech

리스트 속성: first 및 last

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

리스트를 작업할 때, 첫 번째 또는 마지막 요소에 접근해야 하는 경우가 많습니다. [0] 또는 [list.length - 1]과 같은 인덱스 번호를 사용하는 대신, Dart는 이를 훨씬 더 간단하게 만들어주는 두 가지 편리한 속성을 제공합니다.

.first 속성은 리스트의 첫 번째 요소를 제공하며, .last 속성은 마지막 요소를 제공합니다. 이러한 속성들은 인덱스 위치를 계산하는 것보다 가독성이 더 좋고 오류가 발생할 가능성이 적습니다.

List<String> planets = ['Mercury', 'Venus', 'Earth', 'Mars'];

String firstPlanet = planets.first;   // 'Mercury'
String lastPlanet = planets.last;     // 'Mars'

이러한 속성들은 비어 있지 않은 모든 리스트에서 작동하며 인덱스 계산을 자동으로 처리해 줍니다. 덕분에 리스트의 시작이나 끝부분에 있는 요소를 다뤄야 할 때 코드가 더 깔끔해지고 이해하기 쉬워집니다.

challenge icon

챌린지

쉬움

음악 재생 목록의 첫 번째 곡과 마지막 곡에 접근하여 이를 분석하는 프로그램을 작성하세요. 프로그램의 요구 사항은 다음과 같습니다:

  1. 재생 목록 이름을 나타내는 문자열 입력을 읽습니다.
  2. 곡 제목을 나타내는 여러 문자열 입력을 읽습니다 (빈 문자열이 입력되면 입력이 종료됩니다).
  3. .first 속성을 사용하여 재생 목록의 첫 번째 곡을 가져옵니다.
  4. .last 속성을 사용하여 재생 목록의 마지막 곡을 가져옵니다.
  5. 아래에 표시된 것과 정확히 일치하는 형식으로 재생 목록 분석 결과를 출력합니다.

예를 들어, 재생 목록 이름이 "My Favorites"이고 곡들이 "Bohemian Rhapsody", "Imagine", "Hotel California"라면, 프로그램은 다음과 같이 출력해야 합니다:

Playlist: My Favorites
Total songs: 3
Opening track: Bohemian Rhapsody
Closing track: Hotel California

프로그램은 곡 수에 상관없이 재생 목록을 처리할 수 있어야 하며, .first.last 속성을 사용하여 시작 트랙과 마지막 트랙에 접근해야 합니다.

치트 시트

.first.last 속성을 사용하여 리스트의 첫 번째와 마지막 요소에 액세스하세요:

List<String> planets = ['Mercury', 'Venus', 'Earth', 'Mars'];

String firstPlanet = planets.first;   // 'Mercury'
String lastPlanet = planets.last;     // 'Mars'

이러한 속성은 [0] 또는 [list.length - 1]과 같은 인덱스 번호를 사용하는 것보다 가독성이 좋으며 비어 있지 않은 모든 리스트에서 작동합니다.

직접 해보기

import 'dart:io';

void main() {
  // 재생목록 이름 읽기
  String? playlistName = stdin.readLineSync();
  
  // 빈 문자열이 나올 때까지 노래 읽기
  List<String> songs = [];
  String? song;
  while ((song = stdin.readLineSync()) != null && song!.isNotEmpty) {
    songs.add(song);
  }
  
  // TODO: 아래에 코드를 작성하세요
  // songs.first와 songs.last를 사용하여 시작 곡과 마지막 곡을 가져오세요
  
  // 재생목록 분석 결과 출력
  print("Playlist: $playlistName");
  print("Total songs: ${songs.length}");
  // 여기에 시작 곡과 마지막 곡을 출력하세요
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

로직 & 흐름의 모든 레슨