public class Solution { public int solution(int num) { for(int i = 0; i < 500; ++i) { if (num == 1) { return i; } num = num % 2 == 0 ? num / 2 : num * 3 + 1; }
return -1; }
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 public class Solution { public int solution(int num) { int answer = 0; for(int i = 0; i < 500; ++i) { if (num == 1) { return i; } if (num % 2 == 0) { num /= 2; } else { num = num * 3 + 1; } } return -1; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
public class Solution { public int solution(int num) { int answer = 0; for(int i = 0; i < 500; ++i) { if (num == 1) { return i; } if (num % 2 == 0) { num /= 2; } else { num = num * 3 + 1; } } return -1; } }
홀수 -> 짝수 -> 홀수 -> 짝수 형태를 계속 반복하면 num이 int 형이라서 오버플로우 발생해요. long l = (long) num; 이런 형태로 형변환해서 l에 대해서 작업하면 테스트케이스 통과합니다
윤정랑님 와 .. 감사합니다! int 오버플로우는 생각도 못했어요!
와 감사합니다!