[알고리즘문제풀기] 콜라츠 수열 만들기

silver's avatar
Jul 09, 2025
[알고리즘문제풀기] 콜라츠 수열 만들기

문제

내가 작성한 정답

import java.util.*; import java.util.stream.*; class Solution { public int[] solution(int n) { ArrayList<Integer> answer = new ArrayList<>(); answer.add(n); while (n != 1){ if(n%2==0) { n /= 2; } else { n = 3 * n + 1; } answer.add(n); } return answer.stream().mapToInt(i->i).toArray(); } }

다른 사람들의 정답

import java.util.stream.IntStream; class Solution { public int[] solution(int n) { // 위 두 스트림을 연결 return IntStream.concat( // 초기값 n, 조건 i >1, 다음 값의 정의 IntStream.iterate(n, i -> i > 1, i -> i % 2 == 0 ? i / 2 : i * 3 + 1), // 숫자 1을 담은 단일 요소 스트림 IntStream.of(1)) // 배열로 변환해 반환 .toArray(); } }
Share article

silver