개인공부/알고리즘

프로그래머스 - 연속된 수의 합 (kotlin)

KEEMSY 2023. 7. 23. 20:53

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

이번 문제의 핵심은, 제한사항인 num 개의 연속된 수를 더하여 total 이 될 수 없는 테스트 케이스는 없다는 조건이라고생각한다.

이말은 즉슨, 무조건 연속된 숫자의 합으로 만들 수 있다는 것인데, 나는 기준점을 잡는다면 문제를 쉽게 해결할 수 있을 것이라고 생각했다. 그런데 시작점을 잡는 방법을 생각해내지 못해, GPT의 도움을 받았다..

  • total을 num으로 나누어 평균 값을 구한다.
  • 평균값(중심)에서 시작점을 조정한다.

 

class Solution {
    fun solution(num: Int, total: Int): IntArray {
        val answer = IntArray(num)
        var start = (total / num) - ((num - 1) / 2)

        for (i in 0 until num) {
            answer[i] = start
            start++
        }

        return answer
    }
}
728x90