프로그래머스 코딩 테스트 연습 문제 - 연속된 수의 합 / JAVA 풀이 정리
https://school.programmers.co.kr/learn/courses/30/lessons/120923
내가 쓴 코드
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로 반환한다.
'Today I Learned > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 도둑질 - JAVA (0) | 2023.09.24 |
---|---|
[프로그래머스] 금과 은 운반하기 - JAVA (0) | 2023.09.22 |
[프로그래머스] 문자열 밀기 - JAVA (0) | 2023.09.21 |
[프로그래머스] 하샤드 수 - JAVA (0) | 2023.09.21 |
[프로그래머스] 기능 개발 문제 - JAVA (0) | 2023.09.20 |