본문 바로가기

개발/알고리즘

[백준] 14920번 3N + 1 수열

반응형
 

14920번: 3n+1 수열

다음의 점화식에 의해 정해지는 수열 C(n)을 생각하자: C(n+1) = C(n)/2 (C(n)이 짝수일 때) = 3*C(n)+1 (C(n)이 홀수일 때) 초항 C(1)이 자연수로 주어지면, 이 점화식은 자연수로 이루어지는 수열을 정한다.

www.acmicpc.net

입력 & 출력

다음 점화식에 의해 정해지는 수열 C(n)을 생각하자
C(n+1) = C(n)/2 (C(n)이 짝수일 때) = 3*C(n)+1 (C(n)이 홀수일 때)

풀이

점화식을 그대로 사용하면 된다
배열의 현재 값이 1이 아니면 점화식을 반복한다

 

Swift 전체 코드

let c1 = Int(readLine()!)!
var cArray : [Int] = [c1]
var i = 0

while cArray[i] != 1 {
    cArray.append(cArray[i] % 2 == 0 ? cArray[i] / 2 : cArray[i] * 3 + 1)
    i += 1
}
print(i + 1)
반응형