본문 바로가기
코딩테스트

[프로그래머스] 아이스 아메리카노

by liz_devel 2025. 12. 19.

🗒 문제


📝 나의 문제풀이

class Solution {
    fun solution(money: Int): IntArray = intArrayOf(money / 5500, money % 5500)
}

 


🖊 문제 풀이 시 알면 좋을 것

Array vs IntArray 차이 (가장 중요한 부분)

Array<String>, Array<Int>

val arr = arrayOf(1, 2, 3)

 

  • 제네릭 배열
  • 내부적으로는 객체(Integer) 를 담음
  • 타입: Array<Int>
  • 느릴 수 있음 (박싱 발생)

 

IntArray

val arr = intArrayOf(1, 2, 3)

 

  • 기본 타입 전용 배열
  • 진짜 int 값만 저장
  • 메모리 효율 + 빠름
  • 타입: IntArray

 

공통점

Array랑 IntArray의 공통점

  • 크기 고정
  • add 불가능
  • 인덱스로 접근
arr[0] = 10   // 가능
arr.add(10)  // ❌ 불가능

 

 

MutableList와의 결정적 차이

val list = mutableListOf<Int>()
list.add(1)
list.add(2)

 

  • 크기 자유롭게 증가
  • 내부적으로 배열을 새로 만들어가며 관리
  • 그래서 편하지만 배열보다 약간 느림

언제 뭘 써야 하냐? 

IntArray를 쓰는 경우

intArrayOf(a, b)
  • 결과 개수가 처음부터 확정
  • 문제에서 반환 타입이 IntArray
  • 성능 중요한 경우

📌 지금 문제가 딱 이 경우


MutableList를 쓰는 경우

 
val list = mutableListOf<Int>()
for (...) {
    if (...) list.add(...)
}

 

  • 몇 개 나올지 모를 때
  • 조건에 따라 추가해야 할 때

마지막에 👇

 
list.toIntArray()

 

 

 

정확한 개념

배열은 크기 고정, 리스트만 크기 변경 가능

반응형