Kotlin 코딩테스트 문법 시리즈 ⑥ : Map & Set 정리

2025. 7. 6. 02:43·Code Odyssey

 

🔹 Map 선언 및 기본 사용

✅ 가변 Map

val map = mutableMapOf<String, Int>()
map["a"] = 1  // put("a", 1)과 동일
map["b"] = 2

✅ 불변 Map

val map = mapOf("a" to 1, "b" to 2)

✅ 주요 메서드

map["a"]              // 키로 값 접근 (null 가능성 있음)
map.getOrDefault("x", 0)  // 키 없을 때 기본값 반환
map.containsKey("a")
map.remove("a")
map.clear()

✅ 순회

for ((k, v) in map) println("$k : $v")

🔹 키 / 값 / Entry 접근 / 크기

map.keys        // Set<K>
map.values      // Collection<V>
map.entries     // Set<Map.Entry<K, V>>
map.size        // int

🔹 초기화와 정렬

🔸 초기값 지정

val map = mutableMapOf("a" to 1, "b" to 2)

🔸 정렬된 Map

val sorted = map.toSortedMap()               // 키 기준 정렬
val sortedByValue = map.toList().sortedBy { it.second }.toMap()

🔹 기본값 포함 Map (디폴트맵 패턴)

val count = mutableMapOf<Char, Int>()
val ch = 'a'
count[ch] = count.getOrDefault(ch, 0) + 1
  • 카운팅, 빈도수 계산에 매우 유용

🔹 추가 유용 메서드 및 실전 패턴

🔸 getOrPut: 기본값 넣고 접근

val m = mutableMapOf<String, Int>()
val value = m.getOrPut("a") { 0 }  // 없으면 0으로 초기화 후 반환

🔸 문자열 빈도수 카운트: groupingBy

val s = "banana"
val freq = s.groupingBy { it }.eachCount()  // {b=1, a=3, n=2}

🔸 map을 리스트로 변환 후 정렬

val sorted = map.toList().sortedBy { it.second }.toMap()

🔸 필터링

val filteredKeys = map.filterKeys { it >= "b" }
val filteredValues = map.filterValues { it >= 2 }

🔹 Set 선언 및 사용

🔸 초기값 지정

val set = mutableSetOf(1, 2, 3)  // [1, 2, 3]
val emptySet = mutableSetOf<Int>()

✅ 가변 Set

val set = mutableSetOf<Int>()
set.add(1)
set.add(2)

✅ 불변 Set

val set = setOf(1, 2, 3)

✅ 주요 메서드

set.contains(2)
set.remove(2)
set.clear()
set.isEmpty()

🔹 Set 집합 연산

val a = setOf(1, 2, 3)
val b = setOf(2, 3, 4)

val union = a.union(b)          // 합집합: [1, 2, 3, 4]
val intersect = a.intersect(b)  // 교집합: [2, 3]
val subtract = a.subtract(b)    // 차집합: [1]
  • 결과는 모두 불변 Set이며 필요 시 .toMutableSet()으로 변환 가능

🔹 리스트에서 중복 제거 (toSet())

val list = listOf(1, 2, 2, 3, 3, 3)
val unique = list.toSet()   // [1, 2, 3]
  • toSet()은 중복된 값을 제거한 Set으로 변환
  • 순서가 유지되지 않을 수 있음 (기본은 HashSet)
  • 출력이나 비교 전 중복을 제거할 때 자주 사용
println(unique.contains(2))  // true
println(unique.size)         // 3

✅ List → Set 변환은 코테에서 중복 제거용으로 자주 사용됨


✅ 요약 정리

  • Map 선언: mutableMapOf(), mapOf("a" to 1)
  • Set 선언: mutableSetOf(), setOf(1, 2)
  • 접근: map[key], getOrDefault, containsKey
  • 순회: for ((k, v) in map), set.forEach {}
  • 키/값/엔트리 접근: map.keys, map.values, map.entries
  • 정렬: toSortedMap(), sortedBy { it.second }.toMap()

다음은 시리즈 ⑦: 2차원 배열 / 리스트 정리로 이어집니다.

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

Kotlin 코딩테스트 문법 시리즈 ⑧ : 스택 / 큐 / 우선순위 큐 정리  (0) 2025.07.08
Kotlin 코딩테스트 문법 시리즈 ⑦ : 2차원 배열(리스트) 정리  (2) 2025.07.07
Kotlin 코딩테스트 문법 시리즈 ⑤ : 리스트(List) 정리  (0) 2025.07.05
Kotlin 코딩테스트 문법 시리즈 ④ : 배열(Array) 정리  (1) 2025.07.04
Kotlin 코딩테스트 문법 시리즈 ③ : 입출력 & 조건문 & 반복문 정리  (1) 2025.07.03
'Code Odyssey' 카테고리의 다른 글
  • Kotlin 코딩테스트 문법 시리즈 ⑧ : 스택 / 큐 / 우선순위 큐 정리
  • Kotlin 코딩테스트 문법 시리즈 ⑦ : 2차원 배열(리스트) 정리
  • Kotlin 코딩테스트 문법 시리즈 ⑤ : 리스트(List) 정리
  • Kotlin 코딩테스트 문법 시리즈 ④ : 배열(Array) 정리
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)
  • 블로그 메뉴

    • 태그
    • 방명록
  • 태그

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

  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.4
Celion
Kotlin 코딩테스트 문법 시리즈 ⑥ : Map & Set 정리
상단으로

티스토리툴바