반응형
츄르사려고 코딩하는 코집사입니다.
1. [프로그래머스] 연속된 수의 합 자바(JAVA)
1) 문제 제목 : 연속된 수의 합
2) 문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/120923
2. 문제
연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.
3. 제약사항
- 1 ≤ num ≤ 100
- 0 ≤ total ≤ 1000
- num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다.
4. 입출력
numtotalresult
3 | 12 | [3, 4, 5] |
5 | 15 | [1, 2, 3, 4, 5] |
4 | 14 | [2, 3, 4, 5] |
5 | 5 | [-1, 0, 1, 2, 3] |
입출력 예 설명
입출력 예 #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
- 설명 생략
5. 풀이
- 간단한 반복문 문제다.
6. 소스 코드
class Solution {
public int[] solution(int num, int total) {
int[] answer = new int[num];
int sum = 0;
while(true) {
int sign = 0;
int val = num;
if(sum == 0 || total > sum) {
for(int i = 0; i < num; i++) {
sum += val;
val++;
}
sign = 0;
}
if(total < sum) {
for(int i = 0; i < num; i++) {
sum += val;
val--;
}
sign = 1;
}
if(total == sum) {
break;
} else {
if(sign == 0) {
num--;
} else {
num++;
}
}
}
for(int i = 0; i < num; i++) {
answer[i] = num;
num++;
}
return answer;
}
}
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 문자열 계산하기 자바(JAVA) (0) | 2022.11.08 |
---|---|
[프로그래머스] 문자열 정렬하기 (2) 자바(JAVA) (0) | 2022.11.07 |
[프로그래머스] 문자열 밀기 자바(JAVA) (0) | 2022.11.07 |
[프로그래머스] 푸드 파이트 대회 자바(JAVA) (0) | 2022.11.04 |
[프로그래머스] 영어가 싫어요 자바(JAVA) (0) | 2022.11.02 |
[프로그래머스] 옹알이 (2) 자바(JAVA) (4) | 2022.11.02 |
[프로그래머스] 옹알이 (1) 자바(JAVA) (0) | 2022.11.02 |
[프로그래머스] 잘라서 배열로 저장하기 자바(JAVA) (1) | 2022.10.31 |
최근댓글