[백준/파이썬] 3943번 헤일스톤 수열 풀이

업데이트:



문제 정보


풀이

문제

시작 수 n에 대해 콜라츠(헤일스톤) 수열을 만들고 수열에서의 최댓값을 출력하는 문제입니다.

코드

import sys; read = sys.stdin.readline

result = []
for T in range(int(read())):
    n = int(read())
    nums = [n]
    
    while nums[-1] > 1:
        if nums[-1] % 2 > 0: nums.append(nums[-1] * 3 + 1)
        else: nums.append(nums[-1] // 2)

    result.append(max(nums))

print('\n'.join(map(str, result)))

설명

수열을 끝까지 생성하면서 값을 저장하고, 각 테스트케이스마다 최댓값을 계산해 출력합니다.



댓글남기기