문제 요약
1-1. 입력된 수가 짝수라면 2로 나눕니다.
1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다.
2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.
여기에 주어진 수가 1이면 0 그리고 500번 반복해도 답이 없으면 -1 반환하면 됩니다. 굉장히 간단한 문제네요
해답
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.15 |
|---|---|
| [프로그래머스 스위프트] 올바른 괄호 (0) | 2022.07.31 |
| [프로그래머스 스위프트] 위장 (0) | 2022.07.31 |
| [프로그래머스 스위프트] 폰켓몬 (0) | 2022.07.27 |
| [프로그래머스 스위프트] 음양더하기 (0) | 2022.07.27 |