지원연구소 공식 블로그

[PROGRAMMERS] 저주의 숫자 3 (LV. 0) - Python 본문

코딩테스트/프로그래머스

[PROGRAMMERS] 저주의 숫자 3 (LV. 0) - Python

지원연구소 2024. 5. 2. 01:57

[ 문제 ]

3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다. 3x 마을 사람들의 숫자는 다음과 같습니다.
10진법 3x 마을에서 쓰는 숫자 10진법 3x 마을에서 쓰는 숫자
1 1 6 8
2 2 7 10
3 4 8 11
4 5 9 14
5 7 10 16
정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return하도록 solution 함수를 완성해주세요.

 

 

 

[ 제한사항 ]

  • 1 ≤ n ≤ 100

 

 

[ 입출력 예 ]

n result
15 25
40 76

 

< 입출력 예 #1 >

  • 15를 3x 마을의 숫자로 변환하면 25입니다.

< 입출력 예 #2 >

  • 40을 3x 마을의 숫자로 변환하면 76입니다.

 

 

[ 해결 방법 ]

1. 3x 마을에서 쓰는 숫자를 담을 변수 answer 선언
2. n번 반복하면서 answer에 1씩 더한 값 저장
3. 만약 answer이 3의 배수또는 3을 포함한 값이면 answer에 1을 더 더하는 반복을 진행
4. 모든 반복이 끝난 후 answer 반환

 

 

 

[ solution.py ]

def solution(n):
    answer = 0
    
    for i in range(n):
        answer += 1
        while answer % 3 == 0 or '3' in str(answer):
            answer += 1
        
    return answer

 

 

 

> 🌻피드백은 언제나 환영입니다🌻 <