본문 바로가기

Algorithm/프로그래머스

[프로그래머스] Lv.2 124 나라의 숫자

https://school.programmers.co.kr/learn/courses/30/lessons/12899

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

1. 해결방법

우선 n이 3의 배수가 아니라면 3진법을 구하는 것과 동일하게 3으로 나눈 나머지를 저장하고, n을 3으로 나눈 몫으로 저장한다.
 
n이 3의 배수라면 무조건 4를 추가하고, n을 3으로 나눈 몫에서 1을 뺀 값을 저장한다.

 

 

2. 정답코드

def solution(n):
    answer = ''
    while n:
        if n % 3 == 0:
            answer = '4' + answer
            n = n // 3 - 1
        else:
            answer = str(n % 3) + answer
            n //= 3
    return answer
이 문제는 풀지 못했다...

컨디션이 좋지 않아 두뇌 회전이 잘 안되는 것을 떠나서 3진법을 응용한 문자열 삽입하는 문제를 이해하긴 했지만 코드로 옮기지 못해서 틀린 문제이다.