포스트

183. 콜라츠 추측

나의 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
func solution(_ num:Int) -> Int {
    
    var Num : Int = 0
    var answer : Int = 0
    
    Num = num
    
    while Num != 1 {
        
        if Num % 2 == 0 {
            
            Num = Num / 2
            answer += 1
            
        } else {
            
            Num = (Num * 3) + 1
            answer += 1
            
        }
        
        if answer >= 500{
            answer = -1
            break
        }
        
    } 
    
    print(Num)
    print(answer)
    
    return answer
}

이렇게 생각한 이유.

우선 제한사항의 수를 넣는것을 깜빡하였다.

항상 if로해서 넣었는데 이번에는 깜빡하였고, 다음에는 이런 실수를 하지 않기 위해 코드를 수정하지 않았다.

while문에서 깜빡하고, 1이 아닐때 계속 돌게 해야하는데 그걸 반대로 생각을 하는 바람에 코드를 다 작성해두고도 while Num == 1로 해서 코드가 한번도 안돌고 나오는 참사를 맞이 했다.

오래간만에 했다고 쳐도 이런 실수를 바로 캐치를 못했기에 다시 복습을 해야할것 같다.

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