본문 바로가기
Algorithm/Programmers

[Programmers] Lv.0 / 콜라츠 수열 만들기 / Java

by unknownomad 2023. 10. 19.

문제

 

풀이

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

댓글