코드 풀이

124 나라의 숫자

SammyK 2022. 3. 29. 16:59

풀이:

function solution(n) {
    let answer = '';
    const numArr = [4, 1, 2];

    while(n) {
        answer = numArr[n%3] + answer;
        n = n%3 === 0 ? n/3 -1 : Math.floor(n/3); 
    }
    return answer;
}

124 나라에선 모든 숫자를 1, 2, 4로 3가지 숫자로만 표현을합니다.

입출력을 보았을때, 정수n 을 3으로 나누어 나머지값을 보았을떄 나머지가 1이면 1, 2이면 2, 0 일떄 4로 표현을 한다는

패턴을 파악할수 있습니다. 그래서 0 번 자리에는 4를 넣어, 순서대로 4,1,2 이란 배열을 만들고.

정수 n 번을 3으로 나누었을떄 나머지갑이 0일떄 까지 돌아가는 while 문을 써주고,

받은 정수 n 을 계속 3 으로 나누어 변환을한 값을 answer 에 넣어줍니다

만약 n 의 나머지값이 0이라면 몫에서 1을 빼야함, 1을 빼면 자리수가 하나 올라가는 것을 막아 문제에서 원하는 답을 찾을 수 있다.

예)

3/3 = 1, 나머지 0  => 14

1,2,4 에선 1을 빼고 나머지값만 출력해야함

6/3 = 2, 나머지 0 => 24

하지만 1,2,4 에선 14 이기에, 1을 뺴줘야 14

 

나머지값이 0 이 아니라면 그 값을 다시 n에 할당함.

 

'코드 풀이' 카테고리의 다른 글

메뉴 리뉴얼  (0) 2022.04.04
기능 개발  (0) 2022.03.30
멀쩡한 사각형  (0) 2022.03.28
오픈 채팅방  (0) 2022.03.26
문자열 압축  (0) 2022.03.25