본문 바로가기

Job Wanted/코테 - 프로그래머스

[프로그래머스] 월간 코드 챌린지 시즌1 > 3진법 뒤집기

728x90
반응형

월간 코드 챌린지 시즌1 > 3진법 뒤집기

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

 

프로그래머스

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

programmers.co.kr

 


처음에 틀린 이유 ::

사실 아직도 잘 모르겠다

 

다음에 조심해야할 점 ::

여러 케이스 가운데 꼭 한 두개씩 예외 케이스를 생각하지 못해서 정답으로 인정받지 못하는 경우들이 있다. 항상 예외 케이스를 잘 생각해두자.

 

정답 코드

def solution(n):
    answer = 0
    temp = ''
    
    while n > 0:
        n,r = divmod(n,3)
        temp += str(r)
    
    answer = int(temp, 3)
    return answer
    
    '''
    if n > 0:
        while n > 3:
            temp += str(int(n%3))
            n = n // 3
        temp += str(n)

    for j in range(len(temp)):    
        answer += int(temp[(-1) * (j+1)]) * pow(3, j)
    '''
    
    '''
    if n < 3:
        answer += str(n)
    elif n >= 3:
        while n > 3:
            temp += str(int(n%3))
            n = n // 3
        temp += str(n)

    for j in range(len(temp)):    
        answer += int(temp[(-1) * (j+1)]) * pow(3, j)
    '''

    
    '''
    answer = 0
    tempAnswer = ''
    i = 0
    print(n)
    while (n>=1):
        tempAnswer += str(n%3)
        print(n)
        n = n - n%3
        n = n/3
        
    print(int(tempAnswer)
    answer = int(tempAnswer, 3)
          '''
    #return answer
          
'''
def solution(n):
    answer = ''
    
    while(n >= 1):
        rest = n % 3
        n = n // 3
        answer += str(rest)
    
    return int(answer, 3)
'''

 

잘못 작성한 답 (1)

def solution(n):
    answer = 0
    temp = ''
    
    if n < 3:
        temp += str(n)
    elif n >= 3:
        while n > 3:
            temp += str(int(n%3))
            n = n // 3
        temp += str(n)

    for j in range(len(temp)):    
        answer += int(temp[(-1) * (j+1)]) * pow(3, j)

    return answer
728x90
반응형