[프로그래머스] 수열과 구간 쿼리 3

devel_liz·2024년 11월 25일

코딩테스트

목록 보기
12/45

🗒 문제



📝 나의 문제풀이

class Solution {
    fun solution(arr: IntArray, queries: Array<IntArray>): IntArray {
        for(idx in queries.indices){
            var(first, second) = queries[idx]
            var a = arr[second]
            var b = arr[first]
            arr[first] = a
            arr[second] = b
        }
            return arr
    }
}

📝 다른 사람의 문제 풀이

class Solution {
    fun solution(arr: IntArray, queries: Array<IntArray>): IntArray {
        queries.forEach { (first, second) -> 
            arr[first] = arr[second].also { arr[second] = arr[first] }
        }
        return arr
    }
}

🖊 문제 풀이 시 알면 좋을 것

  • array

    • Array는 고정된 크기를 가지며, 한 번 생성된 후 배열의 크기를 변경할 수 없습니다.
      • 배열의 크기는 고정되어 있음: Array는 크기를 변경할 수 없으며, 크기를 변경하려면 새로운 배열을 생성해야 합니다.
      • 배열의 요소는 수정 가능: 배열의 각 인덱스를 통해 저장된 값을 수정할 수 있습니다.
      • 배열 요소 수정 예시
        fun main() {
        val numbers = arrayOf(1, 2, 3, 4, 5)
        
        // 두 번째 인덱스의 값을 10으로 수정
        numbers[1] = 10
        
        println(numbers.joinToString())  // 출력: 1, 10, 3, 4, 5
        }
        
  • 구성 분해 선언

    • Kotlin에서는 배열이나 객체의 값을 여러 개의 변수로 분해하여 한 번에 할당할 수 있는 문법을 제공합니다.

      • 배열에서 사용

      • 아래 예제에서 pair 배열의 첫 번째 값은 first에, 두 번째 값은 second에 할당됩니다.

        val pair = intArrayOf(1, 2)
        val (first, second) = pair
        
        println(first)   // 출력: 1
        println(second)  // 출력: 2
      • 데이터 클래스에서 사용

        data class Person(val name: String, val age: Int)
        
        				 val person = Person("John", 25)
        				 val (name, age) = person
        
        				println(name)  // 출력: John
        				println(age)   // 출력: 25
  • forEach

    • forEach는 컬렉션이나 배열의 각 요소에 대해 지정된 작업을 실행하는 함수입니다. forEach는 컬렉션을 반복하면서 각 요소를 처리할 수 있도록 도와줍니다.

      • 예제를 보시면 forEach 안에서 number는 배열의 각 요소를 의미합니다. it을 사용하여 number 대신 각 요소를 참조할 수도 있습니다.
               val numbers = arrayOf(1, 2, 3, 4, 5)
      
      			numbers.forEach { number ->
                   println(number)  // 출력: 1, 2, 3, 4, 5
      			}
      
      
  • also

    • also는 객체를 변경하고 나서 그 객체 자체를 반환하는 함수입니다. 주로 객체에 작업을 적용한 후 그 객체를 그대로 반환하고 싶을 때 사용합니다.
      val number = mutableListOf(1, 2, 3)
      number.also { it.add(4) }  // 리스트에 4를 추가하고, 리스트 자체를 반환
      println(number)  // 출력: [1, 2, 3, 4]
profile
Android zizon

0개의 댓글