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

 

코딩테스트 연습 - 124 나라의 숫자

 

programmers.co.kr


내 풀이



def solution(n):
    skajwl=[]
   
    while n!=0:
        if n%3==0:
            skajwl.append('4')
            n=n//3 -1
        else:
            skajwl.append(str(n%3))
            n//=3
    skajwl=skajwl[::-1]
    answer ="".join(skajwl)
   
    return answer
   
       
   

       
       
print(solution(100))

처음에 0이 없는줄 모르고 그냥 삼진법이네 하고 풀었다가 왜 안되지? 하고 한시간 이상 고민했던 문제다.

이 문제의 포인트는 3진법인데 0 1 2 가 아닌 1 2 3 진법이라는점 근데 3 대신 숫자 4를 쓴다는점이 포인트다.

3으로 나눴을때 나머지가 없으면(나누어지면) 4를 append 해줬다.

포인트는 -1을 해주는것.



 

 

다른사람의 풀이

def change124(n):
    num = ['1','2','4']
    answer = ""


    while n > 0:
        n -= 1
        answer = num[n % 3] + answer
        n //= 3

    return answer


# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(change124(10))

 

훨씬 깔끔하다. 원리는 같다.


시험기간인데 이거에 꽂혀서 시간낭비를 너무많이했다;

'취준 > 프로그래머스' 카테고리의 다른 글

더 맵게 - 파이썬  (0) 2022.06.01
기능개발 - 파이썬  (0) 2022.05.30
오픈채팅방 - 파이썬  (0) 2022.05.26
실패율 - 파이썬  (0) 2022.05.24
체육복 - 파이썬  (0) 2022.05.22

+ Recent posts