Menu
Coddy logo textTech

프로젝트 개요

Coddy Swift 여정의 로직 및 흐름 섹션에 포함된 레슨 — 56개 중 33번째.

여러분은 작은 습관 추적기(habit tracker)를 만들 것입니다. 상태는 습관 이름과 해당 주의 완료된 날짜 기록을 매핑하는 단일 딕셔너리에 저장됩니다:

var habits: [String: [Int]] = [
    "read": [1, 3, 5],          // 월, 수, 금에 완료함
    "workout": [2, 4]           // 화, 목에 완료함
]

날짜는 월...일에 해당하는 정수 1...7입니다. 다음 네 개의 레슨에 걸쳐 기능을 하나씩 추가해 보겠습니다:

  • 습관을 추가하고 완료로 표시하기
  • 한 주 동안의 연속 기록(streak) 계산하기
  • 주간 그리드 출력하기
  • 두 주를 비교하기

각 레슨은 독립적이며, 모든 파일의 상단에서 딕셔너리를 다시 선언하게 됩니다. 상태(state)는 동일한 형태이므로 작성한 메서드들은 레슨 전반에 걸쳐 그대로 적용됩니다.

challenge icon

챌린지

초급

프로젝트를 시작하기 위해, 데이터 설정 코드를 작성하세요:

  1. 비어 있는 habits 딕셔너리([String: [Int]])를 초기화하세요
  2. 습관의 개수를 출력하세요
  3. 딕셔너리가 비어 있는지 여부를 출력하세요

예상 출력 결과는 다음과 같습니다:

0
true

치트 시트

습관 추적기는 습관 이름을 완료된 요일 번호의 배열(월~일을 나타내는 1...7)로 매핑하는 딕셔너리로 모델링할 수 있습니다:

var habits: [String: [Int]] = [
    "read": [1, 3, 5],    // 월, 수, 금에 완료함
    "workout": [2, 4]     // 화, 목에 완료함
]

유용한 딕셔너리 속성들:

habits.count    // 항목의 개수
habits.isEmpty  // 항목이 없으면 true

직접 해보기

// TODO: 비어 있는 [String: [Int]]를 선언한 다음, count와 isEmpty를 출력하세요
quiz icon실력 점검

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

로직 및 흐름의 모든 레슨