[프로그래머스] 원소들의 곱과 합

devel_liz·2024년 11월 22일
1

코딩테스트

목록 보기
7/45

🗒 문제


📝 나의 문제풀이

class Solution {
    fun solution(num_list: IntArray): Int {
        var totalMultiply = 1
        val totalSquare = num_list.sumOf{it} * num_list.sumOf{it}
        val resultMutuply = num_list.forEachIndexed{ idx, _ ->
            totalMultiply = totalMultiply * num_list[idx]
        }
         return if(totalMultiply < totalSquare) 1 else 0
    }
}

📝 다른 사람의 문제 풀이

class Solution {
    fun solution(num_list: IntArray): Int = if (num_list.multiple() > num_list.sum().pow()) 0 else 1

    fun IntArray.multiple(): Int {
        var result = 1
        this.forEach {
            result *= it
        }
        return result
    }

    fun Int.pow(): Int = this * this
}

🖊 문제 풀이 시 알면 좋을 것

  • sum()

    • 컬렉션의 모든 숫자 요소를 더한 값을 반환합니다.
    • 용도: 숫자 리스트나 배열에서 합계를 계산할 때 사용합니다.
      val numbers = listOf(1, 2, 3, 4)
      println(numbers.sum()) // 출력: 10
  • sumOf

    • 컬렉션의 각 요소를 특정 계산식에 매핑한 후, 모든 결과를 더한 값을 반환합니다.
    • 용도: 계산 로직을 포함한 합계 계산이 필요할 때 사용합니다.
    		   data class Item(val price: Double, val quantity: Int)
    		   val items = listOf(Item(10.0, 2), Item(15.5, 3))
    		   println(items.sumOf { it.price * it.quantity }) // 출력: 71.5
    
  • forEachIndexed

    • 컬렉션의 각 요소와 해당 요소의 인덱스를 함께 처리할 때 사용합니다.
    • 용도: 인덱스를 활용하여 요소에 작업을 수행할 때 사용합니다.
      val names = listOf("Alice", "Bob", "Charlie")
      names.forEachIndexed { index, name ->
        println("Index: $index, Name: $name")
      }
      // 출력:
      // Index: 0, Name: Alice
      // Index: 1, Name: Bob
      // Index: 2, Name: Charlie
  • *= 곱셈 할당 연산자

    • 변수에 현재 값과 특정 값을 곱한 후, 결과를 다시 변수에 할당합니다.
    • 용도: 값을 곱하고 다시 저장해야 할 때 간결하게 표현할 수 있습니다.
      var value = 5
      value *= 3 // value = value * 3
      println(value) // 출력: 15
profile
Android zizon

0개의 댓글

관련 채용 정보