문제
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
class Solution {
public long[] solution(int x, int n) {
long[] answer = {};
return answer;
}
}
제한사항
x는 -10000000 이상, 10000000 이하인 정수입니다.
n은 1000 이하인 자연수입니다.
입출력 예
x | n | answer |
2 | 5 | [2,4,6,8,10] |
4 | 3 | [4,8,12] |
-4 | 2 | [-4, -8] |
문제 풀이
분석
x를 초기값으로 한 후 x만큼 증가한 정수를 리스트에 n개만큼 담아주기
내 소스코드
class Solution {
public long[] solution(int x, int n) {
long[] answer = new long[n];
long num = x;
for(int i=0; i<answer.length; i++){
answer[i] = num;
num += x;
}
return answer;
}
}
다른 예시 1
- num 변수를 추가로 선언하지 않고 배열 초기값 선언 후 이전 값을 이용해서 for문으로 저장
import java.util.*;
class Solution {
public static long[] solution(int x, int n) {
long[] answer = new long[n];
answer[0] = x;
for (int i = 1; i < n; i++) {
answer[i] = answer[i - 1] + x;
}
return answer;
}
}
다른 예시 2
- Stream 사용해서 깔끔하게 한 줄로 처리 (iterate()는 연산을 반복적으로 수행할 때 사용되는 메서드)
import java.util.stream.LongStream;
class Solution {
public long[] solution(int x, int n) {
return LongStream.iterate(x, i->i+x).limit(n).toArray();
}
}
추가로 고민 할 부분
배열과 ArrayList 차이
배열
long[] array = new long[5]
크기(길이)는 변경할 수 없음 - 이를 정적 할당(static allocation)
ArrayList
List<Number> arrayList = new ArrayList<>();
리스트의 길이가 가변적 - 동적 할당(dynamic allocation)
타입 고려하기
- long, int
Lv.1 / Java / 연습문제
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
'공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Lv. 1] 자연수 뒤집어 배열로 만들기 - JAVA (0) | 2024.08.05 |
---|---|
[프로그래머스 Lv. 1] 자릿수 더하기 - JAVA (0) | 2024.08.04 |
[프로그래머스 Lv. 1] 약수의 합 - JAVA (0) | 2024.08.02 |
[프로그래머스 Lv. 1] 문자열을 정수로 바꾸기 - JAVA (0) | 2024.08.01 |
[프로그래머스 Lv. 1] 문자열 내 p와 y의 개수 - JAVA (0) | 2024.07.31 |