문제
풀이
import java.util.*;
class Solution {
public int[] solution(int n) {
List<Integer> list = new ArrayList<>();
while(n != 1) {
if(n % 2 == 0) {
list.add(n);
n = n / 2;
} else {
list.add(n);
n = 3 * n + 1;
}
}
list.add(1);
return list.stream().mapToInt(i -> i).toArray();
}
}
import java.util.stream.IntStream;
class Solution {
public int[] solution(int n) {
return IntStream.concat(
IntStream.iterate(n, i -> i > 1, i -> i % 2 == 0 ? i / 2 : i * 3 + 1),
IntStream.of(1))
.toArray();
}
}
출처
https://school.programmers.co.kr/learn/courses/30/lessons/181919
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] Lv.0 / 간단한 논리 연산 / Java (0) | 2023.11.07 |
---|---|
[Programmers] Lv.0 / 배열 만들기 4 / Java (0) | 2023.10.19 |
[Programmers] Lv.0 / 카운트 업 / Java (0) | 2023.10.19 |
[Programmers] Lv.0 / 배열 만들기 2 / Java (0) | 2023.10.19 |
[Programmers] Lv.0 / 수열과 구간 쿼리 4 / Java (0) | 2023.10.19 |
댓글