https://school.programmers.co.kr/learn/courses/30/lessons/120923
정답
import java.util.*;
class Solution {
public int[] solution(int num, int total) {
ArrayList<Integer> list = new ArrayList<>();
for(int i = -1000; i <= 1000; i++) {
int sum = 0;
// 연속된 num개의 수를 더한다.
for(int j = i; j < i + num; j++)
sum += j;
if(sum == total) {
for(int j = i; j < i + num; j++)
list.add(j);
}
}
int[] answer = new int[list.size()];
for(int i = 0; i < list.size(); i++)
answer[i] = list.get(i);
return answer;
}
}
다른 사람의 풀이
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;
}
}
'Java > 프로그래머스' 카테고리의 다른 글
[JAVA] 프로그래머스 - 종이 자르기 (0) | 2024.05.12 |
---|---|
[JAVA] 프로그래머스 - 문자열 밀기 (0) | 2024.05.12 |
[JAVA] 프로그래머스 - k의 개수 (0) | 2024.05.12 |
[JAVA] 프로그래머스 - A로 B 만들기 (0) | 2024.05.12 |
[JAVA] 프로그래머스 - 이진수 더하기 (0) | 2024.05.12 |