[TIL] 24.01.18

sssujijjl·2024년 1월 18일

[TIL]

목록 보기
20/51

[문제]

  • 콜라츠 추측
    : 짝수인 경우 / 2, 홀수인 경우 * 3 +1을 해줍니다.
    1이 나올때까지 계속 반복해줍니다.
    (만약, 500번 이상 넘어가면 -1을 해줍니다.)

[코드]

function solution(num) {
    let result = 0;

    while (num !== 1) {
        if (result === 500) {
            return -1;
        }

        if (num % 2 === 0) {
            num /= 2;
        } else {
            num = num * 3 + 1;
        }

        result += 1;
    }

while이라는 반복문을 사용해 계속 조건에 맞으면 계속 반복해준다.
몇 번 반복하는지 알기 위해서 result에 +1을 해준다.
만약 횟수가 500이 넘어가게 되면 -1을 return해준다.

[배운점]

항상 for문을 주로 사용하다가 while문을 사용해서 문제를 푸는데
그래도 수업을 열심히 들었는지 보고 while문을 사용해야한다는 것을 알았다!
그 뒤의 코드를 생각하는데 약간 어려움을 느꼈는데 알고리즘 특강에서 말씀해주신대로
문제를 보고 어떻게 풀지 먼저 글로 작성해 본 후, 코드를 써보기 시작하니 훨씬 좋은거같다.

0개의 댓글