문제 요약
테스트 케이스가 1인 경우와 cnt가 500을 넘어갈 때에 대한 처리를 하고 나머지 경우에 대해 문제에서 요구하는 대로 나머지 연산을 통하여 계산한다.
해답
func solution(_ num:Int) -> Int {
var tmp = num
var cnt = 0
if tmp == 1{
return 0
}
while true {
guard cnt < 500 else {
return -1
}
if tmp % 2 == 0 {
tmp = tmp / 2
cnt += 1
} else if tmp % 2 == 1 {
tmp = tmp*3 + 1
cnt += 1
}
if tmp == 1 {
return cnt
}
}
}'Algorithm > 프로그래머스' 카테고리의 다른 글
| [프로그래머스 스위프트] 짝수와 홀수 (0) | 2022.08.24 |
|---|---|
| [프로그래머스 스위프트] 최대공약수와 최소공배수 (0) | 2022.08.24 |
| [프로그래머스 스위프트] 평균 구하기 (0) | 2022.08.24 |
| [프로그래머스 스위프트] 하샤드 수 (0) | 2022.08.24 |
| [프로그래머스 스위프트] 핸드폰 번호 가리기 (0) | 2022.08.24 |