inblog logo
|
stupefyee
    알고리즘문제풀기

    [JAVA 문제 풀이] 123. 콜라츠 수열 만들기

    프로그래머스 (181919)
    Stupefyee's avatar
    Stupefyee
    Mar 06, 2025
    [JAVA 문제 풀이] 123. 콜라츠 수열 만들기
    Contents
    내가 작성한 코드다른 사람의 코드
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/181919
    notion image
     

    내가 작성한 코드

    import java.util.*; class Solution { public int[] solution(int n) { List<Integer> answer = new ArrayList<>(); answer.add(n); while(n != 1) { if(n % 2 == 0) { n /= 2; answer.add(n); } else { n = n * 3 + 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( // 콜라츠 추측 수열 생성 (1이 되기 전까지) IntStream.iterate(n, i -> i > 1, i -> i % 2 == 0 ? i / 2 : i * 3 + 1), // 마지막으로 1 추가 (수열이 1로 끝나야 함) IntStream.of(1)) // 최종 결과를 배열로 변환 .toArray(); } }
    • IntStream.iterate(초기값, 종료 조건, 다음 값 계산)
     
    Share article
    Contents
    내가 작성한 코드다른 사람의 코드

    stupefyee

    RSS·Powered by Inblog