[프로그래머스] 콜라츠 추측 _JavaScript

ne_ol·2022년 1월 18일
0
post-thumbnail

문제 설명

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.

제한 사항

문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

입출력 예

nresult
68
164
626331-1

입출력 예 설명

입출력 예 #1

  • 문제의 설명과 같습니다.

입출력 예 #2

  • 16 -> 8 -> 4 -> 2 -> 1 이되어 총 4번만에 1이 됩니다.

입출력 예 #3

  • 626331은 500번을 시도해도 1이 되지 못하므로 -1을 리턴해야합니다.

기본 solution 코드

function solution(num) {
    var answer = 0;
    return answer;
}

문제 풀이

function solution(num) {
    var answer = 0;
    while (num !== 1) { //num이 1이 아니라면 계속 loop를 돌린다
        if (answer >= 500) { //500번이 넘어가면 
            return -1;
        }
        num %2 ? num = num * 3 + 1 : num = num / 2;
        answer++;
    }
    return answer;
}

풀이 설명

.while을 처음 써봤다. 조금 헷갈렸다. 조건 삼항 연산자 우측에 true와 false에 해당하는 action을 적을 때 앞단에 'num='을 안 써줘서 고생했었다.

사용 함수

중복


다른 풀이

내 풀이랑 비슷해서 skip

profile
개발되는 중입니다.

0개의 댓글