728x90
Contents
연속된 정수 num개를 더해 total이 되는 정수 배열
문제 설명
연속된 세 개의 정수를 더해 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]입니다.
설계 / 아이디어
- total을 num으로 나누면 중간값이 나온다.
- 연속된 숫자이므로 중앙값에서 중앙값의 위치를 빼면 첫번째 값이 나온다.
문제 풀이
class Solution {
public int[] solution(int num, int total) {
int[] answer = new int[num];
// total에서 num을 나누면 중앙값
int median = total / num;
// 짝수일 때와 홀수일 때 중앙값의 위치: median에서 빼면 시작 숫자가 나옴
int subtract = total % num == 0 ? num / 2 : num / 2 - 1;
int start = median - subtract;
for (int i = 0; i < num; i++) {
answer[i] = start + i;
}
return answer;
}
}
728x90
'Java > 프로그래머스' 카테고리의 다른 글
[프로그래머스][JAVA] 크기가 작은 부분 문자열 (0) | 2023.01.28 |
---|---|
[프로그래머스][JAVA] K번째 수 (0) | 2023.01.27 |
[프로그래머스][JAVA] 체육복 (0) | 2023.01.27 |
[프로그래머스][JAVA] 종이자르기 (0) | 2023.01.26 |
[프로그래머스][JAVA] 다음에 올 숫자 (0) | 2023.01.18 |
댓글