이끌든지 따르든지 비키든지

Today I Learned/프로그래머스

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

SeongHo5 2023. 9. 21. 20:28

프로그래머스 코딩 테스트 연습 문제 -  연속된 수의 합 / JAVA 풀이 정리

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

 

프로그래머스

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

programmers.co.kr


내가 쓴 코드

public int[] solution(int num, int total) {
        int startValue = (total / num) - ((num - 1) / 2);

		int[] result = new int[num];
		for (int i = 0; i < num; i++) {
			result[i] = startValue + i;
		}
		return result;
    }

startValue 계산하기

    → num은 갯수, total은 총합이므로, total / num으로 정수의 평균값을 구한다.

        → 중간값과 시작값간의 거리((num - 1) / 2)를 구한다.

            → 정수의 평균값을 중간 · 시작값간의 거리만큼 앞으로 옮겨주면(빼주면) 시작값(startValue)를 구할 수 있다.

 

위를 통해 구한 시작값에서부터 연속된 정수를 생성해 합산해 result로 반환한다.