728x90
문제를보자마자 입력받은 숫자가 나눠지고 곱해지고.. 변형이 되어서
숫자를 변형될때마다 저장하는 변수가 필요하다는 생각이 들었다.
그래서 currentNum 이라는 변수에 매개변수 num을 저장하게끔 처음부터 초기화했다.
하지만 코드를 다 작성해도
3개중 2개만 통과된다.
계속해서 마지막것은 실행이 되지않아 다른사람들의 코드를 참조했다.
class Solution {
fun solution(num: Int): Int {
var longNum = num.toLong()
var count = 0
while (count < 500 && longNum > 1) {
count ++
longNum = if (longNum % 2 == 0L) longNum / 2 else longNum * 3 + 1
}
return if (count == 500) -1 else count
}
}
먼저 num 타입을 long으로 바꿨고
생각해보니 currentNum 에 1이 아닌것을 참으로 해버리면 예외가 많이 발생할것 같았다.
728x90
'TIL > kotlin 알고리즘' 카테고리의 다른 글
프로그래머스 lv1. 핸드폰 번호 가리기 (0) | 2024.01.26 |
---|---|
프로그래머스 lv1 나누어 떨어지는 숫자 배열 (0) | 2024.01.25 |
프로그래머스 lv1 두 정수 사이의 합 (0) | 2024.01.25 |
프로그래머스 lv1 두 정수 사이의 합 (0) | 2024.01.25 |
프로그래머스 lv1 정수 내림차순으로 배치하기 (0) | 2024.01.24 |