Kotlin 코딩테스트 문법 시리즈 ⑤ : 리스트(List) 정리

2025. 7. 5. 02:04·Code Odyssey

✅ Kotlin의 리스트는 mutableListOf, List, ArrayList 등이 있으며, 코딩테스트에서는 대부분 가변 리스트(mutableListOf) 사용합니다.


🔹 리스트 선언 (가변, 불변)

종류 선언 방법 설명
불변 리스트 val list = listOf(1, 2, 3) 요소 추가/삭제 불가
가변 리스트 val list = mutableListOf(1, 2, 3) 요소 변경 가능
Java 방식 val list = ArrayList<Int>() 자바 스타일, 인터페이스 동일

🔹 크기만 정해 초기화

val list = MutableList(5) { 0 }       // [0, 0, 0, 0, 0]
val list = MutableList(5) { it * 2 }  // [0, 2, 4, 6, 8]
  • MutableList(n) { 초기값 } 사용

🔹 리스트 접근 & 수정

val list = mutableListOf(10, 20, 30)

list[1] = 99
println(list[1])  // 99

🔹 리스트 메서드 (자주 사용)

list.add(4)           // 요소 추가
list.addAll(list2)    // 리스트 병합
list.remove(2)        // 값이 2인 첫 요소 제거
list.removeAt(0)      // 인덱스 0 제거
list.clear()          // 전체 삭제
list.contains(3)      // 포함 여부
list.indexOf(5)       // 값의 인덱스
list.size             // 크기
list.isEmpty()        // 비었는지 확인

🔹 기타 유용한 리스트 메서드

🔸 마지막 인덱스 접근

val last = list[list.lastIndex]  // list[list.size - 1]와 동일

🔸 부분 리스트 추출

val sub = list.subList(1, 4)  // 인덱스 1 이상, 4 미만

🔸 리스트 뒤집기

list.reverse()       // 제자리 반전
val rev = list.reversed()  // 새 리스트 반환

🔹 리스트 순회

for (x in list) println(x)

for ((i, v) in list.withIndex()) println("$i: $v")

list.forEach { println(it) }

🔹 리스트 정렬

list.sort()                        // 오름차순 (in-place)
list.sortDescending()             // 내림차순
list.sorted()                     // 정렬된 새 리스트 반환
list.sortedBy { it % 10 }         // 조건 기반 정렬
list.sortWith(compareBy<Int> { it % 10 }.thenByDescending { it })

🔹 변환 / 복사 / 필터링

val newList = list.toList()        // 복사 (불변)
val copied = list.toMutableList()  // 복사 (가변)

val filtered = list.filter { it > 0 }      // 조건 필터링
val mapped = list.map { it * 2 }           // 요소 변환
val distinct = list.distinct()             // 중복 제거

🔹 Java의 LinkedList 활용 (Queue 대용)

import java.util.LinkedList

val q = LinkedList<Int>()
q.add(1)
q.add(2)
println(q.poll())  // 1
  • Kotlin에는 기본 LinkedList 없음 → Java API 사용 가능
  • poll(), peek(), add(), remove() 등 큐처럼 사용
  • ArrayDeque도 대안으로 사용됨 (다음 시리즈에서 다룸)

✅ 요약: Kotlin 컬렉션/배열 상호 변환 정리표

From → To 방법 비고
List<T> → Array<T> list.toTypedArray() 제네릭 타입에 사용
List<Int> → IntArray list.toIntArray() Int, Long 등 기본형만 가능
Array<T> → List<T> array.toList() 읽기 전용 List 반환
Array<T> → MutableList<T> array.toMutableList() 변경 가능한 리스트
IntArray → List<Int> intArray.toList() 박싱됨 (Int → Integer)
List<T> → MutableList<T> list.toMutableList() 복사 후 변경 가능
MutableList<T> → List<T> 그냥 사용 가능 List는 MutableList의 상위타입

✅ 요약 정리

  • 가변 리스트 선언: mutableListOf, MutableList(n) {}
  • 접근/변경: list[i], list[i] = 값
  • 추가/삭제: add, remove, removeAt, clear
  • 순회: for, withIndex, forEach
  • 정렬: sort(), sortBy, sortWith
  • 변환: map, filter, toList, distinct

다음은 시리즈 ⑥: Map & Set 정리로 이어집니다.

'Code Odyssey' 카테고리의 다른 글

Kotlin 코딩테스트 문법 시리즈 ⑦ : 2차원 배열(리스트) 정리  (2) 2025.07.07
Kotlin 코딩테스트 문법 시리즈 ⑥ : Map & Set 정리  (0) 2025.07.06
Kotlin 코딩테스트 문법 시리즈 ④ : 배열(Array) 정리  (1) 2025.07.04
Kotlin 코딩테스트 문법 시리즈 ③ : 입출력 & 조건문 & 반복문 정리  (1) 2025.07.03
Kotlin 코딩테스트 문법 시리즈 ② : 문자열 (String)  (1) 2025.07.02
'Code Odyssey' 카테고리의 다른 글
  • Kotlin 코딩테스트 문법 시리즈 ⑦ : 2차원 배열(리스트) 정리
  • Kotlin 코딩테스트 문법 시리즈 ⑥ : Map & Set 정리
  • Kotlin 코딩테스트 문법 시리즈 ④ : 배열(Array) 정리
  • Kotlin 코딩테스트 문법 시리즈 ③ : 입출력 & 조건문 & 반복문 정리
Celion
Celion
오늘도 평소처럼 화이팅!
  • Celion
    Orion Log
    Celion
  • 전체
    오늘
    어제
    • 전체 글 (144)
      • Uncompiled Thoughts (8)
        • 네이버 부스트캠프 10기 (5)
      • CS 기초부터 한 걸음씩 (34)
      • Code Odyssey (22)
      • Algorithm (77)
        • Coding Test Records (63)
      • Git (3)
      • reference (0)
  • 블로그 메뉴

    • 태그
    • 방명록
  • 태그

    Level2
    시뮬레이션
    코테
    Level3
    백준
    java
    프로그래머스
    문법정리
    greedy
    Kotlin
    알고리즘고득점kit
    boostcamp
  • 최근 글

  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.4
Celion
Kotlin 코딩테스트 문법 시리즈 ⑤ : 리스트(List) 정리
상단으로

티스토리툴바