관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 연속된 수의 합 (Kotlin) 본문

알고리즘 문제 풀이/프로그래머스

[Algorithm] 프로그래머스 - 연속된 수의 합 (Kotlin)

참깨빵위에참깨빵_ 2023. 2. 2. 01:48
728x90
반응형
연속된 3개의 정수를 더해 12가 되는 경우는 3, 4, 5다. 두 정수 num, total이 주어진다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 리턴하는 solution()을 완성하라

 

 

풀지 못해서 다른 사람의 풀이를 보고 코틀린으로 바꿨다.

 

https://gyulpiki.tistory.com/entry/%EC%97%B0%EC%86%8D%EB%90%9C-%EC%88%98%EC%9D%98-%ED%95%A9-Java-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%9E%85%EB%AC%B8

 

연속된 수의 합 - Java [프로그래머스 입문]

❤️ Problem 더보기 문제 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 re

gyulpiki.tistory.com

fun solution(num: Int, total: Int): IntArray {
    val avg = total / num
    val standard = num / 2
    var start = 0
    start = if (total % num == 0) {
        avg - standard
    } else {
        avg - (standard - 1)
    }

    val answer = IntArray(num)
    for ((index, i) in (start until start + num).withIndex()) {
        answer[index] = i
        println(answer[index])
    }
    return answer
}

 

간단하게 만들면 아래처럼도 가능하다.

 

class Solution {
    fun solution(num: Int, total: Int): IntArray =
        (total / num - (num - 1) / 2).let { t -> IntArray(num) { index -> index + t } }
}

 

반응형
Comments