목차
#1 배열 만들기 1
문제 설명
정수 n과 k가 주어졌을 때, 1 이상 n이하의 정수 중에서 k의 배수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
제한사항
- 1 ≤ n ≤ 1,000,000
- 1 ≤ k ≤ min(1,000, n)
입출력 예
n | k | result |
10 | 3 | [3, 6, 9] |
15 | 5 | [5, 10, 15] |
#2 알고리즘 및 코드
# 방법 1
그저 반복문 사용...
class Solution {
public int[] solution(int n, int k) {
int[] answer = new int[n / k];
for(int i = 0; i < n / k; i++){
for(int j = 0; j <= i; j++){
answer[i] += k;
}
}
return answer;
}
}
---------------------------------------
정확성 테스트
테스트 1 〉 통과 (0.02ms, 71.5MB)
테스트 2 〉 통과 (0.03ms, 76.8MB)
테스트 3 〉 통과 (0.01ms, 65.4MB)
테스트 4 〉 통과 (0.02ms, 74MB)
테스트 5 〉 통과 (0.02ms, 72.3MB)
테스트 6 〉 통과 (0.01ms, 77.7MB)
테스트 7 〉 통과 (0.02ms, 71.5MB)
테스트 8 〉 통과 (0.01ms, 78.6MB)
테스트 9 〉 통과 (0.03ms, 74.1MB)
테스트 10 〉 통과 (12.53ms, 78.6MB)
테스트 11 〉 통과 (0.25ms, 74.5MB)
# 방법 2
메소드 참조 방식 사용!
스트림의 mapToInt를 통해 변환하는 방법을 사용!
import java.util.ArrayList;
import java.util.List;
class Solution {
public int[] solution(int n, int k) {
List<Integer> list = new ArrayList<>();
for(int i = k; i <= n;){
list.add(i);
i += k;
}
int[] answer = list.stream().mapToInt(Integer::intValue).toArray();
return answer;
}
}
-----------------------
정확성 테스트
테스트 1 〉 통과 (2.15ms, 77.7MB)
테스트 2 〉 통과 (1.87ms, 79.1MB)
테스트 3 〉 통과 (2.46ms, 74.1MB)
테스트 4 〉 통과 (2.01ms, 78.5MB)
테스트 5 〉 통과 (6.15ms, 80.9MB)
테스트 6 〉 통과 (2.68ms, 69.4MB)
테스트 7 〉 통과 (2.01ms, 72.4MB)
테스트 8 〉 통과 (1.86ms, 66.2MB)
테스트 9 〉 통과 (1.82ms, 75.9MB)
테스트 10 〉 통과 (3.14ms, 81.1MB)
테스트 11 〉 통과 (2.53ms, 77.1MB)
# 방법 3
람다식 사용.
import java.util.ArrayList;
import java.util.List;
class Solution {
public int[] solution(int n, int k) {
List<Integer> list = new ArrayList<>();
for(int i = k; i <= n;){
list.add(i);
i += k;
}
int[] answer = list.stream().mapToInt(i -> i).toArray();
return answer;
}
}
--------------------
정확성 테스트
테스트 1 〉 통과 (2.15ms, 77.3MB)
테스트 2 〉 통과 (3.31ms, 78.3MB)
테스트 3 〉 통과 (2.06ms, 66.4MB)
테스트 4 〉 통과 (3.94ms, 71.4MB)
테스트 5 〉 통과 (2.15ms, 76.4MB)
테스트 6 〉 통과 (3.02ms, 79.1MB)
테스트 7 〉 통과 (1.95ms, 77.2MB)
테스트 8 〉 통과 (2.29ms, 73.4MB)
테스트 9 〉 통과 (2.65ms, 76.9MB)
테스트 10 〉 통과 (4.08ms, 80.4MB)
테스트 11 〉 통과 (2.09ms, 79.1MB)
'JAVA > 프로그래머스 코딩 기초 트레이닝' 카테고리의 다른 글
[프로그래머스, LV.0] 가까운 1 찾기 (0) | 2023.09.04 |
---|---|
[프로그래머스, LV.0] 글자 지우기 (0) | 2023.09.04 |
[프로그래머스, LV.0] 첫 번째로 나오는 음수 (0) | 2023.09.03 |
[프로그래머스, LV.0] 문자 개수 세기 (0) | 2023.07.12 |
[프로그래머스, LV.0] qr code (0) | 2023.06.28 |