포스트

34. 콜라츠 수열 만들기

나의 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import Foundation

func solution(_ n:Int) -> [Int] {
    
    var N : Int = 0
    var answer : [Int] = []
    N = n
    
    answer.append(N)
    
    while N != 1 {
        if N % 2 == 0 {
            N = N/2
            answer.append(N)
        } else {
            N = (3*N)+1
            answer.append(N)
        }
    }
    
    return answer
}

이렇게 한 이유

while문을 통해 N값이 1이 될때까지 무한 반복을 하게끔했다.

그러면서 N값을 주어진 조건에따라 변화하고 배열에 추가하면서 풀었다.

처음에 오답이나와서 내답과 결과값을 비교해보니, 초기값을 추가하지 않아서 발생한 오답이었다.

그래서 위에 초기값을 추가하고서 해결을 하였다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.