Level. 0
문제
연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다.
연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return 하도록 solution함수를 완성해 보세요.
* 제한사항
- 1 ≤ num ≤ 100
- 0 ≤ total ≤ 1,000
- num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다.
풀이
import java.util.*;
class Solution {
public int[] solution(int num, int total) {
int[] answer = new int[num];
int middle = total%num == 0 ? total/num : total/num+1;
int start = middle-(num/2);
for(int i=0; i<num; i++){
answer[i] = start++;
}
return answer;
}
}
- middle : 연속된 정수의 중간값
- start : 연속된 정수의 첫 시작값
다른 풀이
class Solution {
public int[] solution(int num, int total) {
int[] answer = new int[num];
int check = num*(num+1) / 2;
int start = (total - check) / num + 1;
for (int i = 0; i < answer.length; i++) {
answer[i] = start + i ;
}
return answer;
}
}
- check : 1~num까지의 합
- start : 연속된 숫자의 첫 시작값
https://school.programmers.co.kr/learn/courses/30/lessons/120923
'Algorithm > Programers - Java' 카테고리의 다른 글
[프로그래머스(Java)] 안전지대 (1) | 2023.10.19 |
---|---|
[프로그래머스(Java)] 주사위 게임 3 / Collections.sort() (1) | 2023.10.15 |
[프로그래머스(Java)] 분수의 덧셈 / 유클리드 호제법 (0) | 2023.10.14 |
[프로그래머스(Java)] 다음에 올 숫자 (0) | 2023.10.12 |
[프로그래머스(Java)] 최빈값 구하기 / sort (0) | 2023.10.11 |