• 반복문
    • while문
      • while 조건문:

        실행문(body)
        
      • while은 조건문이 참이면 반복을 계속한다. 거짓이 되는 순간 body로 들어가지 않음

      • while문의 조건문에 True로만 써놓고 body안의 선택문안에 존재하는 break명령을 통해 중단시킬 수 있음

        • break은 break과 가장 가까운 1개의 반복문을 탈출함
      • 이중 반복문(중첩 반복문) : 반복문 1개로 구현할 수 없다면, 사용할 수 있음(시간복잡도+)

    • 많은 문제들이 반복적인 성격을 띤다. 문제의 성격에 따라 반복문의 조건을 어떻게 설정하는지가 엄청나게 중요하다. (+이중 반복문)
    • 반복문 내부에서 선택문과 break을 적시 적소에 사용할 수 있어야함
  • 리스트
    • 많은 데이터를 효율적으로 저장하고, 처리하고, 관리할 수 있도록 자료들 사이의 관계를 나타내는 것(단일 값을 개별적으로 저장하면, 값을 사용할 때 모든 변수를 개별적으로 불러야하는 것이 비효율적이다.)
      • 리스트, 튜플, 집합, 딕셔너리(사전) 등이 있지만, 리스트가 굉장히 유용하고 많이 쓰인다.(c언어의 배열느낌)
    • 일련의 여러 값들을 유연하게 다루는 자료구조
      • 인덱스 사용, 데이터 추가/삭제가 쉽다, 전체 크기/길이도 자유롭게 변경가능
      • 리스트 각 요소의 데이터 타입이 달라도 괜찮다!, 정렬/검색과 같은 기능이 제공됨
    • 리스트 변수 선언시 대괄호[]안에 들어가는 각 요소는 쉼표로 구분
      • season = [’spring’, ‘summer’,’fall’,’winter’] ⇒ 인덱스번호 차례대로 0, 1, 2, 3
        • 비어있는 리스트 변수 선언 ⇒ temp = [] or temp = list()
    • 리스트의 메소드(점(.)을 찍어 구현함)
      • list.count(요소) ⇒ 요소가 리스트안에서 몇번 들어있는지 횟수를 리턴함
      • list.index(요소) ⇒ 요소의 인덱스 번호가 몇번인지 리턴함
      • list.reverse() ⇒ 리스트의 저장 순서를 역순으로 변경
      • list.append(요소) ⇒ 요소를 리스트 뒤에 추가함
        • list.insert(숫자, 요소) ⇒ 요소를 숫자에 해당하는 인덱스에 추가함
      • list.sort() ⇒ 정렬(숫자는 오름차순, 문자열은 사전식으로)
        • 리스트의 정렬은 리스트안에 데이터가 하나의 데이터 타입일때만 정렬가능
      • list.remove(요소) ⇒ 요소를 삭제함(여러개 존재한다면 하나만 삭제)
      • del list[인덱스 번호] ⇒ 인덱스 번호에 해당하는 리스트의 값을 삭제함
    • for반복문 + 리스트
      • for item in list:
        • for문을 돌 동안 list에 있는 요소들의 값이 item에 복사가 됌(자동으로 list 요소 갯수만큼 반복)
      • for i in range(N): ( = for i in range(len(list)):)
        • range(N) ⇒ 0부터 N-1까지 하나씩 증가시키면서 반복함
      • 이 둘의 차이점?
        • item in list는 리스트에서 각 요소값을 하나씩 가져와 복사하는 것.
        • i in range(len(list))는 range로 인덱스를 자동 생성하고, 인덱스로 리스트 각 요소에 접근함
        • 복사 vs 직접 접근 의 차이
    • 인덱스 슬라이싱(list[index1:index2])
      • index1 부터 index2 -1까지 슬라이싱
        • [:index2] : 0부터 index2 -1까지 슬라이싱
        • [index1:] : index1부터 끝까지 슬라이싱
    • 리스트와 함께 사용하기 유용한 함수
      • len(list) ⇒ 리스트의 길이를 반환
      • max(list) ⇒ 리스트 요소 중 가장 큰 값 반환
      • min(list) ⇒ 리스트 요소 중 가장 작은 값 반환
      • sum(list) ⇒ 리스트 요소의 총 합 반환