관리 메뉴

여름 언덕에서 배운 것

[0단계] 콜라츠 수열 만들기 본문

가랑비에 옷 젖는 줄 모른다 💻/🌰코테문풀_꾸준히

[0단계] 콜라츠 수열 만들기

잔뜩 2025. 1. 17. 14:54

* 재귀함수 사용을 생각을 못함 흑흑 

* 자기 자신의 숫자도 들어가야 하기 때문에 add (n)을 먼저 해줘야 한다는 것도 포인트!

왜 while 쓸 생각을 못햇지

    list.add(n);

        while (n != 1) {
            if (n % 2 == 0) {
                n /= 2;
            } else {
                n = (3 * n) + 1;
            }
            list.add(n);
        }

 

import java.util.*;
class Solution {
    public int[] solution(int n) {
        List<Integer> list =new ArrayList<>();
        madeCollatz(n,list);
        int[] answer = new int[list.size()];
        for(int i=0;i<list.size();i++){
            answer[i] = list.get(i);
        }
        return answer;
    }
    
    public void madeCollatz(int n , List<Integer>result){
        result.add(n);
        if(n==1){
            return;
        }
        if(n%2==0){
            n/=2;
            madeCollatz(n,result);
        }else{
            n=(3*n+1);
             madeCollatz(n,result);
        }
    }
}
728x90