[프로그래머스] 순서 바꾸기

devel_liz·2025년 1월 16일
0

코딩테스트

목록 보기
44/45

🗒 문제



📝 나의 문제풀이

class Solution {
    fun solution(numList: IntArray, n: Int): IntArray {
         val aList = numList.copyOfRange(n, numList.size)
         val bList = numList.copyOfRange(0, n)
         return aList + bList
    }
}

📝 다른 사람의 문제 풀이

class Solution {
    fun solution(numList: IntArray, n: Int) = (numList + numList).copyOfRange(n, n + numList.size)
}

🖊 문제 풀이 시 알면 좋을 것

  • copyOfRange
    • 배열의 특정 범위를 복사해 새로운 배열을 반환.
    • 포함 여부: 시작 인덱스는 포함, 끝 인덱스는 제외.
      val array = intArrayOf(1, 2, 3, 4, 5)
      val subArray = array.copyOfRange(1, 4) // 1번부터 3번까지 복사
      println(subArray.joinToString()) // 출력: 2, 3, 4
  • 효율적인 배열 회전 (다른 사람의 풀이)
    • (numList + numList)로 배열을 두 번 이어 붙여 하나의 큰 배열 생성.
    • 필요한 범위만 copyOfRange로 잘라서 반환.
    • 메모리 효율적이며, 코드가 간결해짐.
      val numList = intArrayOf(1, 2, 3, 4, 5)
      val rotated = (numList + numList).copyOfRange(2, 7)
      println(rotated.joinToString()) // 출력: 3, 4, 5, 1, 2
profile
Android zizon

0개의 댓글

관련 채용 정보