124나라의 숫자 ( 12899 / 프로그래머스 / JavaScript)

2021. 12. 3. 18:33·알고리즘 문제풀이
반응형

문제

풀이과정

숫자가 1, 2, 4 순서로 반복되며 값이 반복되는 형식이다.
값을 3으로 나눴을때 몫과 나머지를 구해서 answer에 나머지를 추가해주는 형식으로 답을 구했다.

다만 3으로 나눳을때 값이 1, 2, 0 순으로 된다
나머지 0일 경우 몫이 1개가 생기므로 새로운 값이 추가되는 현상이 발생하여 주어진 값을 -1 하여
나눳을때 값이 0,1,2 순으로 되게 만들어서 답을 구하였다.

기본 풀이코드

function solution(n) {
    let answer = '';

    function oneTwoFour(n){
        n = n - 1
        let num = parseInt(n / 3); // 몫
        let sub = n % 3; // 나머지

        if(sub == 0){
            answer = '1' + answer;
        }else if(sub == 1){
            answer = '2' + answer;
        }else if(sub == 2){
            answer = '4' + answer;
        }

        if(num > 0){
            oneTwoFour(num);
        }
    }

    oneTwoFour(n);
    return answer;
}

리펙토링

if else 문이 너무 많아 지저분해 보였다. 해당 코드를 리펙토링하여 수정하기 위해 배열을 사용했다.

리펙토링 코드

function solution(n) {
    let answer = '';

    function oneTwoFour(n){
        n = n - 1
        let num = parseInt(n / 3); // 몫
        let sub = n % 3; // 나머지

        answer = ['1','2','4'][sub] + answer;

        if(num > 0){
            oneTwoFour(num);
        }
    }

    oneTwoFour(n);
    return answer;
}

후기

n = n - 1 을 생각하여
처음부터 리펙토링하여 배열로 간단하게 값을 가지고 오는 방법을 빠르게 생각했어야되는데 바로 떠오르지 않았다.
앞으로 잘풀어보자!

반응형

'알고리즘 문제풀이' 카테고리의 다른 글

[SWEA][D1] 1933. 간단한 N 의 약수 JAVA  (0) 2025.05.27
[SWEA][D1] 2043. 서랍의 비밀번호 Java  (0) 2025.05.27
오픈채팅방 (42888 / 프로그래머스 / JavaScript)  (1) 2021.12.21
모음사전 ( 84512 /프로그래머스 / JavaScript)  (0) 2021.12.12
거리두기 확인하기 (81302 / 프로그래머스 / JavaScript)  (0) 2021.12.02
'알고리즘 문제풀이' 카테고리의 다른 글
  • [SWEA][D1] 2043. 서랍의 비밀번호 Java
  • 오픈채팅방 (42888 / 프로그래머스 / JavaScript)
  • 모음사전 ( 84512 /프로그래머스 / JavaScript)
  • 거리두기 확인하기 (81302 / 프로그래머스 / JavaScript)
WHITE_FROST
WHITE_FROST
개발공부리뷰블로그
    반응형
  • WHITE_FROST
    하얀하얀IT
    WHITE_FROST
  • 전체
    오늘
    어제
    • 분류 전체보기 (119)
      • Stack (43)
        • Next.js (7)
        • React (12)
        • React-Native (15)
        • TypeScript (0)
        • Python (2)
        • JavaScript (2)
        • Android (1)
        • DB (2)
        • JAVA (1)
      • Obsidian (1)
      • AI (3)
      • AI Tools (0)
      • Tools (0)
      • Mac (0)
      • Error (7)
      • 알고리즘 정리 (6)
      • 알고리즘 문제풀이 (46)
      • 공부일상 (4)
      • 개발 도구 & 라이브러리 (0)
      • 정보처리기사 (0)
      • 기타 (6)
      • Tip (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ios
    boj
    Python
    리액트네이티브
    D2
    javascript
    hooks
    프로그래머스
    d1
    코테준비
    error
    reactnative
    SWEA
    React Hooks
    오블완
    react-native-maps
    코딩테스트
    코테
    react
    Next.js
    알고리즘
    백준
    mongoDB Atlas
    React-Native cli
    ReactHook
    java
    Expo
    react-native
    mongodb cloud
    티스토리챌린지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
WHITE_FROST
124나라의 숫자 ( 12899 / 프로그래머스 / JavaScript)
상단으로

티스토리툴바