Programmers / 2단계 / 124 나라의 숫자 / python

2024. 4. 8. 11:15·코딩테스트/programmers (python)

 

코딩테스트 연습 - 124 나라의 숫자 | 프로그래머스 스쿨 (programmers.co.kr)

 

모범 답안

def solution(n):
    result = []
    while n:
        t = n % 3
        if not t:
            t = 4
            n -= 1
        result.append(str(t))
        n //= 3
    return ''.join(result[::-1])
def solution(n):
    num = ['1', '2', '4']
    result=''
    
    while n > 0:
        n -= 1
        result = num[n % 3] + result
        n //= 3
        
    return result

나오는 숫자가 3개 밖에 없으므로 3진수를 이용하여 변환하면 구현할 수 있다.

일반 3진수는 0이 있어서 일반적인 숫자 체계처럼 가장 앞의 숫자로 0이 올 수 없지만 124나라의 진수는 11처럼 가장 앞의 숫자로 가장 작은 단위의 숫자가 올 수 있다.

 

10진법 3진법 124나라
1 1 1
2 2 2
3 10 4
4 11 11
5 12 12
6 20 14
7 21 21
8 22 22
9 100 24

빨간 부분 이외에는 3진법으로 변환하는 값과 동일하다.

빨간 부분은 3의 배수들만 해당하며, 여기에 대한 로직만 세워주면 된다.

 

3의 배수는 3으로 나눴을 때 나머지가 0인데, 124 나라의 숫자를 보면 다 4를 가지고 있다. 

따라서 3의 배수에 대해서 4로 처리하고, 몫에 대해서 1만 빼주면 답을 구할 수 있다.

 

 

참조

[프로그래머스] 124 나라의 숫자 (level2, python) — 🐛 HOON DEVLog (tistory.com)

 

[프로그래머스] 124 나라의 숫자 (level2, python)

문제 설명 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만

hoons-dev.tistory.com

 

'코딩테스트 > programmers (python)' 카테고리의 다른 글

Programmers / 2단계 / 전력망을 둘로 나누기 / python  (0) 2024.04.10
Programmers / 2단계 / 메뉴 리뉴얼 / python  (0) 2024.04.09
Programmers / 2단계 / 연속된 부분 수열의 합 / python  (0) 2024.04.06
Programmers / 2단계 / 큰 수 만들기 / python / 탐욕법(Greedy)  (0) 2024.04.04
Programmers / 2단계 / 삼각 달팽이 / python  (0) 2024.04.02
'코딩테스트/programmers (python)' 카테고리의 다른 글
  • Programmers / 2단계 / 전력망을 둘로 나누기 / python
  • Programmers / 2단계 / 메뉴 리뉴얼 / python
  • Programmers / 2단계 / 연속된 부분 수열의 합 / python
  • Programmers / 2단계 / 큰 수 만들기 / python / 탐욕법(Greedy)
seulll
seulll
개인 공부 / 정리 블로그입니다
  • seulll
    seulll
    seulll
  • 전체
    오늘
    어제
    • 분류 전체보기 (323) N
      • 코딩테스트 (223) N
        • programmers (python) (156)
        • 백준 (python) (65) N
      • 자료구조 | 알고리즘 (14)
      • 개발 | 프로젝트 (35)
        • Python (4)
        • Java | Spring (7)
        • Unity (3)
        • API (3)
      • CS (15)
        • Network (5)
        • SQL (2)
        • OS (4)
      • 데이터 분석 (14)
      • 기타 (12)
  • 블로그 메뉴

    • 홈
    • 태그
    • 글쓰기
    • 설정
  • 링크

    • GitHub
  • 인기 글

  • 태그

    2 x n 타일링
    프로그래머스
    티스토리챌린지
    카카오맵
    대입 표현식
    백엔드 개발자
    카카오맵 api
    solving environment
    파이썬
    kakao map api
    백엔드
    백엔드 개발자 역량
    야근 지수
    Greedy
    그리디 알고리즘
    asterisk
    바다코끼리
    Boxplot
    API
    박스플롯
    오차행렬
    오블완
    confusion matrix
    데이터분석
    웹크롤링
    모델 성능 평가
    프렌즈4블록
    코딩테스트
    Python
    train_test_split
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
seulll
Programmers / 2단계 / 124 나라의 숫자 / python
상단으로

티스토리툴바