콜라츠 추측

·2022년 3월 22일
0

알고리즘

목록 보기
21/47

점점 수학에 다가간다 수포자인데 날...살려달라

문제 푸는 것 자체가 조금 당황스러웠다.
이해하는데 조금 걸려서 그냥 직접 손으로 뚜들기면서 아~ 이렇게 되는구나~ 라는 식으로 풀어나갔다.

function solution(num) {
  let count = 0;
  for (let i = 0; i < 500; i++) {
    if (num === 1) {
      return count;
    }
    if (num % 2 === 0) {
      num = num / 2;
      count += 1;
    } else {
      num = num * 3 + 1;
      count += 1;
    }
  }
  return -1;
}

코드풀이다

  1. 500회 미만이랬으니 넣을 값을 선언한다.
  2. 반복문을 최대 500번까지 돌린다
  3. 1은 바로 값을 빼야하기 때문에 선 조건으로 넣어놨다.
  4. 들어온 값을 짝수라면 나누기2를 하고 카운트 +1
  5. 들어온 값이 홀수라면 곱하기 3 + 1 하고 카운트 +1
  6. 500번이 넘게 돌아간다면 -1을 리턴

이런식으로 풀었다.
줄라고 하면 줄일 수 있을 것 같긴 한데...

지금 과부화왔나 뇌가 좀 꼬여서 ㅠㅠ 다음에 줄여야겠다

profile
물류 서비스 Backend Software Developer

0개의 댓글