124 나라의 숫자

Happhee·2022년 2월 15일
0

[ Lv2 ] programmers

목록 보기
26/32
post-thumbnail

📝 124 나라의 숫자

🖥 나의 JS 코드

우선 규칙성을 파악하기 위해 1부터 24까지 나열해보았다

10진법124 나라10진법124 나라
1113111
2214112
3415114
41116121
51217122
61418124
72119141
82220142
92421144
104122211
114223212
124424214

일단 처음 3으로 나눴을때 나머지에 따라 마지막 자릿수의 값이 정해지는 것을 발견하였다.
1이면 1, 2이면 2, 0이면 4로 첫째자리의 수가 정해진다

이후로는 을 계산하게 되는데,
n값을 3으로 나눈 나머지가 0일때는 n을 3으로 나눈 몫에 -1를 해주면서 n에 대한 나머지를 이어 계산해야 올바른 124 나라의 문자열로 반환된다


첫번째 시도

function solution(n) {
    var answer = '';
  // 나머지에 따른 값을 이어붙이기 위한 배열
    let number124 = [4, 1, 2];
  
	// n이 0이 되기 전까지 반복
    while (n) {
      // 나머지가 0인 경우 예외처리
        answer = number124[n % 3] + answer;
        n = (n % 3 == 0) ? Math.floor(n / 3) - 1 : Math.floor(n / 3);
    }
    return answer;
}

두번째 시도

시간이 한참 흐르고 다시 풀었는데,
배열 활용과 삼항 연산을 활용하지 않고 switch문을 사용하여 문제를 해결하고, if문을 한번더 사용하였다

function solution(n) {
    let result = '';
    while(n > 0){
        const rest = n % 3;
      // switch 문사용
        switch(rest){
            case 0:
                result = 4 + result;
                break;
            case 1:
                result = 1 + result;
                break;
            case 2:
                result = 2+ result;
                break;
        }
      // n 값 저장
        n = Math.floor(n/3);
      // 나머지가 0인 경우 예외처리
       if(rest === 0)
           n-=1;
    }
    return result;
}

가독성이 별로 좋지않은 코드인것 같다
앞으로는 짧고 간결하게 코드를 짜보도록 노력해야 겠다

profile
즐기면서 정확하게 나아가는 웹프론트엔드 개발자 https://happhee-dev.tistory.com/ 로 이전하였습니다

0개의 댓글