Archive/Questions
[programmers/Swift] 콜라츠 추측
Marco
2022. 4. 25. 09:13
728x90
programmers.co.kr - 코딩테스트연습 - Lv.1 - 연습문제 - 콜라츠 추측
코딩테스트 연습 - 콜라츠 추측
1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2
programmers.co.kr
Constraints :
- 입력된 수, num은 1 이상 8000000 미만인 정수입니다.
//
// Created by Yongwoo Marco on 2022/04/23.
// Copyright © 2022 Yongwoo Marco Kim. All rights reserved.
//
func solution(_ num:Int) -> Int {
guard num != 1 else { return 0 }
var n = num
for count in 1..<500 {
if n % 2 == 0 {
n /= 2
} else {
n = 3 * n + 1
}
guard n != 1 else { return count }
}
return -1
}
print(solution(6)) // 8
print(solution(16)) // 4
print(solution(626331)) // -1
How I tried this :
조건이 1이상인데 num이 1이면 4가 되기 때문에 맨 처음 걸러주고,
이후에 다른 수는 1이 될때까지 반복함
문제에 관한 모든 저작권 : https://programmers.co.kr/
728x90