코딩테스트/JAVA

[JAVA/프로그래머스] 연속된 수의 합

할루솔이 2023. 10. 7. 18:46
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/120923

 

프로그래머스

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

programmers.co.kr

 

문제 설명
연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.

제한사항
1 ≤ num ≤ 100
0 ≤ total ≤ 1000
num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다.


입출력 예


입출력 예 설명
입출력 예 #1
num = 3, total = 12인 경우 [3, 4, 5]를 return합니다.


입출력 예 #2
num = 5, total = 15인 경우 [1, 2, 3, 4, 5]를 return합니다.


입출력 예 #3
4개의 연속된 수를 더해 14가 되는 경우는 2, 3, 4, 5입니다.


입출력 예 #4
설명 생략


풀이과정

https://fall-in-dream.tistory.com/28

 

프로그래머스 > 코딩테스트 연습 > 코딩테스트 입문 > 연속된 수의 합 JAVA

문제 설명 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solu

fall-in-dream.tistory.com

이 분의 설명을 보고 풀 수 있었다..

다른 사람들 설명을 아무리 봐도 '그래서 왜 이 규칙이 나온거지????'라는 의문이 있었는데

설명 보고 아하..!했다..

 

제출코드

class Solution {
    public int[] solution(int num, int total) {
        int[] answer = new int[num];
        int start = 0;
        int sum = 0;
        
        for(int i=start; i<start + num; i++){
            sum += i;
        }
        
        start += (total-sum)/num;
        
        for(int i=0;i<num;i++){
            answer[i] = start;
            start++;
        }
        
        return answer;
    }
}

 

추석이라고 너무 나태해졌나보다..ㅠㅠ앞으로 빡공해야지!

 

반응형