본문 바로가기

아래로 스크롤 해주세요!

My Reference Book

-

제가 배웠던것을 한곳에 정리해보았어요!

HTML

HTML 태그 톺아보기

HTML

자세히보기

CSS

CSS 속성 톺아보기

CSS

자세히보기

JAVASCRIPT

JS 실행문 톺아보기

JAVASCRIPT

자세히보기

최신댓글

프로그래머스

프로그래머스 1단계 : 콜라츠 추측

by C0Di 2022. 11. 10.
728x90

프로그래머스 1단계 : 콜라츠 추측!

오늘은 다이어트 콜라마냥 칼로리 쫙 뺀 콜라츠 문제를 풀어보도록 합니다
다이어트 콜라 마신다고 살은 안빠집니다.


while/if를 통한 방법

while의 조건에 충족할때까지 while조건 만족을 위한 값들을 계산하고 if를 통해 반환해주는 방법입니다.

1. count 변수는 0으로 설정합니다
2. while을 통해 num이 1 과 같지 않을때까지
3. count를 1씩 증가시키고 num 나누기 2가 1일때 num 곱하기 3 더하기 1을 해준 값을 num에 넣어주고
4. num 나누기 2가 0일때 num 나누기 2를 num에 넣어준뒤
5. 만약 카운트가 500을 초과하게 될시 -1 반환하고 아닐시 계속 반복
6. 최종적으로 count를 반환합니다.

여기서 sqrt는 제곱근을 구하기 위한 메서드 입니다.

function collatz(num) {
    let count = 0;
    while(num !== 1){
      count++;
      num = num % 2 ? num * 3 + 1 : num / 2;
      if(count > 500) return -1;
    }
      return count;
  }

for/if를 통한 방법 : 다른 사람 풀이

for/if를 사용해 break로 답에 도달시 그 값을 반환해주는 방법입니다.

1. answer은 -1로 설정
2. i가 500 미만이 될때까지 1씩 더해줍니다.
3-1. 만약 num이 1과 같다면 i의 값을 answer에 삽입 후 break를 통해 탈출
3-2. 만약 num 나누기 2가 1이라면 num 곱하기 3 더하기 1한 값을 num에 삽입
4. 아닐시 num 을 2로 나눈뒤 num에 다시 삽입합니다
5. 최종적으로 answer반환

function collatz(num) {
    var answer = -1;

  for(var i=0;i<500;i++)
  {
    if(num == 1) {
      answer = i;
      break;
    }

    if(num%2) {
      num = num *3 + 1;      
    }
    else num /= 2;
  }
    return answer;
}
728x90
반응형

댓글

#HASH_TAGS

-

1

화사한가요? 슬라이드 결과 : 월요일 선택해주세요 공부 오징어 두마리 포획 완료 제이쿼리 다크모드 JQuery HTML 숙제가 다양해서 너무 좋아요 이건 또 뭐람 Method 오늘 조업 마감했습니다. 오늘은 내가바로 오징어! 멈추지 않는 ' j ' 시리-즈 내일은 즐거운 월요일 울적하니 꽃을 달아봤습니다 ImageSlideEffect scroll-snap-type 오늘도 웹표준은.. 오징어 한마리 수확 완료! 필터선택자 scroll-snap-align 메서드 코드 오징어 1Kg 당 3000원 코딩