728x90
코드 힌트
1. 반복문을 통한 수열 생성
- while (n > 1 && result <= 500) 조건으로 n이 1보다 크고, 결과 횟수가 500 이하인 동안 수열을 계속 생성합니다.
- n의 값이 1 이하가 되거나 반복 횟수가 500을 초과할 경우 종료됩니다.
2. 짝수 및 홀수 처리
- 짝수일 때: if (n % 2 == 0L) 조건을 사용하여 n이 짝수인지 확인합니다.
- 짝수인 경우 n /= 2를 통해 n을 2로 나누어 값을 업데이트합니다.
- 홀수일 때: else 블록을 통해 홀수인 경우 n을 3배하고 1을 더하는 작업을 수행합니다: n = n * 3 + 1.
3. 결과 횟수 관리
- result++를 사용하여 각 반복이 실행될 때마다 카운트를 증가시킵니다.
- 결과는 반복이 종료된 후 최종적으로 반환됩니다.
4. 종료 조건
- 500을 초과한 경우: if (result > 500) 조건문으로 결과가 500을 초과하면 -1을 반환하여 처리합니다.
- 정상 종료: 그렇지 않으면 결과 횟수(result)를 반환합니다.
정답은 더보기 클릭
더보기
class Solution {
fun solution(num: Int): Int {
var result = 0 // 반복 횟수를 저장할 변수 초기화
var n: Long = num.toLong() // 매개변수 타입은 val로 변경이 불가능
while (n > 1 && result <= 500) { // n이 1보다 크고 result가 500 이하인 동안 반복
if (n % 2 == 0L) // n이 짝수인지 확인
n /= 2 // 짝수일 경우 n을 2로 나누기
else
n = n * 3 + 1 // 홀수일 경우 n을 3배하고 1을 더하기
result++ // 반복 횟수 증가
}
if (result > 500) // 반복 횟수가 500을 초과하면
return -1 // -1 반환
return result // 결과 반환
}
}
728x90
'프로그래머스(Kotlin) > Level 1' 카테고리의 다른 글
[프로그래머스 (Kotlin)] 없는 숫자 더하기 (7) | 2024.10.03 |
---|---|
[프로그래머스 (Kotlin)] 음양 더하기 (1) | 2024.10.03 |
[프로그래머스 (Kotlin)] 서울에서 김서방 찾기 (1) | 2024.10.02 |
[프로그래머스 (Kotlin)] 자릿수 더하기 (0) | 2024.10.02 |
[프로그래머스 (Kotlin)] 하샤드 수 (0) | 2024.09.30 |