[프로그래머스] 이어 붙인 수

devel_liz·약 9시간 전
0

코딩테스트

목록 보기
8/8

🗒 문제


📝 나의 문제풀이

class Solution {
    fun solution(num_list: IntArray): Int {
        var odd = 0
        var even = 0
        odd = num_list.filter{ it % 2 != 0}.joinToString("").toInt()
        even = num_list.filter{ it % 2 == 0}.joinToString("").toInt()
        return odd + even
    }
}

📝 다른 사람의 문제 풀이

class Solution {
    fun solution(numList: IntArray) = numList.partition { it % 2 == 0 }.toList().sumOf { it.joinToString("").toInt() }
}

🖊 문제 풀이 시 알면 좋을 것

  • filter

    • 조건을 만족하는 요소들만 포함하는 새로운 컬렉션을 반환합니다.
    • 용도: 리스트나 배열에서 특정 조건을 만족하는 항목을 추출할 때 사용합니다.
      val numbers = listOf(1, 2, 3, 4, 5)
      val evens = numbers.filter { it % 2 == 0 }
      println(evens) // 출력: [2, 4]
  • joinToString

    • 컬렉션의 요소들을 문자열로 변환하여 지정된 구분자로 연결합니다.
    • 용도: 데이터를 문자열로 출력하거나 가공된 형태로 보여줄 때 사용합니다.
    • prefix
      • 결과 문자열의 앞에 붙는 텍스트를 지정합니다.
      • 기본값은 빈 문자열 ""입니다.
    • postfix
      • 결과 문자열의 뒤에 붙는 텍스트를 지정합니다.
      • 기본값은 빈 문자열 ""입니다.
    		 val names = listOf("Alice", "Bob", "Charlie")
    			println(names.joinToString(", ", prefix = "[", postfix = "]"))
    			// 출력: [Alice, Bob, Charlie]
    
  • partition

    • 컬렉션의 요소를 조건에 따라 두 그룹으로 나누어 Pair로 반환합니다.
      • Pair.first: 조건을 만족하는 요소들
      • Pair.second: 조건을 만족하지 않는 요소들
    • 용도: 데이터를 분류할 때 사용합니다.
      val numbers = listOf(1, 2, 3, 4, 5)
      val (evens, odds) = numbers.partition { it % 2 == 0 }
      println(evens) // 출력: [2, 4]
      println(odds)  // 출력: [1, 3, 5]
  • sumOf

    • 각 요소를 특정 계산식에 매핑한 후, 그 결과를 모두 더한 값을 반환합니다.
    • 용도: 값 변환과 합계를 동시에 계산할 때 사용합니다.
      data class Product(val name: String, val price: Double, val quantity: Int)
      val products = listOf(
        Product("Apple", 1.5, 10),
        Product("Banana", 0.8, 20)
      )
      val totalCost = products.sumOf { it.price * it.quantity }
      println(totalCost) // 출력: 31.0
profile
Android zizon

0개의 댓글