Kotlin 코딩테스트 문법 시리즈 ④ : 배열(Array) 정리

2025. 7. 4. 01:56·Code Odyssey

✅ Kotlin에서 배열은 Java의 배열과 유사하지만, IntArray, Array<Int> 등 다양한 선언 방식이 존재하며 실전에서 매우 자주 사용됩니다.


🔹 배열 선언 방법 (기본형)

✅ 크기만 정해 선언 (초기값은 모두 0)

val arr = IntArray(5)      // [0, 0, 0, 0, 0]

✅ 크기와 초기값 동시에 지정

val arr = IntArray(5) { 1 }  // [1, 1, 1, 1, 1]

✅ 인덱스를 이용해 초기화

val arr = IntArray(5) { it * 2 } // [0, 2, 4, 6, 8]

🔹 다양한 자료형 배열

자료형 선언 예시
IntArray IntArray(5) { 0 }
LongArray LongArray(5) { 0L }
DoubleArray DoubleArray(5) { 0.0 }
CharArray CharArray(5) { 'a' }
BooleanArray BooleanArray(5) { false }
일반 배열 (Array<T>) Array<String>(5) { "" }, Array<Int>(5) { 0 }
  • 주의: IntArray 등은 primitive 배열, Array<Int>는 객체 박싱됨 → 메모리/속도 차이
  • 코테에서는 보통 IntArray, LongArray 등을 우선 사용

🔹 배열 요소 접근 & 수정

val arr = IntArray(3) { it } // [0, 1, 2]

arr[1] = 10
println(arr[1])  // 10

🔹 배열 순회

✅ 인덱스 없이

for (x in arr) println(x)

✅ 인덱스 포함

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

🔹 배열 관련 메서드 (자주 사용)

val arr = intArrayOf(3, 1, 4, 1, 5)

arr.sorted()         // 정렬된 새 리스트 반환
arr.sort()           // 원본 정렬 (in-place)
arr.sum()            // 총합
arr.average()        // 평균 (Double)
arr.maxOrNull()      // 최댓값 (nullable)
arr.minOrNull()      // 최솟값 (nullable)
arr.count { it > 2 } // 조건 만족하는 개수

🔹 배열 변환

val list = arr.toList()         // IntArray -> List<Int>
val newArr = list.toIntArray()  // List<Int> -> IntArray

🔹 배열 정렬: 기본 / 조건 / 내림차순 및 고급 정렬

arr.sort()                        // 오름차순
arr.sortDescending()             // 내림차순

val arr2 = arrayOf("apple", "kiwi", "banana")
arr2.sortBy { it.length }        // 길이 기준 정렬
arr2.sortWith(compareBy<String> { it.length }.thenBy { it }) // 길이 → 알파벳순

🔸 sortBy vs sortWith 차이

  • sortBy { 키값 }: 단일 기준 정렬 (간결)
  • sortWith(compareBy { 키1 }.thenBy { 키2 }): 다중 정렬 조건 가능
  • 예:
  • arr.sortBy { it.length } arr.sortWith(compareBy<String> { it.length }.thenBy { it })
  • 내부적으로 sortBy도 sortWith(compareBy { ... })로 처리됨
  • 단일 기준 → sortBy / 다중 조건 → sortWith

🔹 기타 실전 배열 기능

🔸 nullable 배열 선언

val arr = arrayOfNulls<Int>(5)  // [null, null, null, null, null]
arr[0] = 42

🔸 배열 복사 / 슬라이싱

val copy = arr.copyOf()
val sliced = arr.copyOfRange(1, 3)  // 인덱스 1~2

🔸 조건 필터링 / 중복 제거 / 포함 검사

val evens = arr.filter { it % 2 == 0 }
val unique = arr.distinct()
val hasThree = arr.contains(3)

✅ 요약 정리

  • 기본 배열: IntArray, Array<Int> 등 선택 가능
  • 선언: IntArray(n) { 초기값 }, .withIndex()로 인덱스 순회
  • 메서드: sort(), sum(), maxOrNull(), count {} 등 자주 사용
  • 변환: toList(), toIntArray()
  • 정렬: sortDescending(), sortBy, sortWith

다음은 시리즈 ⑤: 리스트(List) 정리로 이어집니다.

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

Kotlin 코딩테스트 문법 시리즈 ⑥ : Map & Set 정리  (0) 2025.07.06
Kotlin 코딩테스트 문법 시리즈 ⑤ : 리스트(List) 정리  (0) 2025.07.05
Kotlin 코딩테스트 문법 시리즈 ③ : 입출력 & 조건문 & 반복문 정리  (1) 2025.07.03
Kotlin 코딩테스트 문법 시리즈 ② : 문자열 (String)  (1) 2025.07.02
Kotlin 코딩테스트 문법 시리즈 ① : 기본 자료형 & 변수  (0) 2025.07.01
'Code Odyssey' 카테고리의 다른 글
  • Kotlin 코딩테스트 문법 시리즈 ⑥ : Map & Set 정리
  • Kotlin 코딩테스트 문법 시리즈 ⑤ : 리스트(List) 정리
  • Kotlin 코딩테스트 문법 시리즈 ③ : 입출력 & 조건문 & 반복문 정리
  • Kotlin 코딩테스트 문법 시리즈 ② : 문자열 (String)
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)
  • 블로그 메뉴

    • 태그
    • 방명록
  • 태그

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

  • 인기 글

  • 최근 댓글

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

티스토리툴바