문제
4, 13, 413, 134와 같이 숫자가 13과 4를 이용해서 만들 수 있는 수를 불길한 수라고 한다. 그리고 불길한 수가 오름차순으로 나열된 수열을 불길한 수열이라고 한다. 예를 들어 불길한 수열은 다음과 같이 나열될 수 있다.
ex) S = {4, 13, 44, 134, 413, 444, 1313......}
n이 매개변수로 주어질 때, 불길한 수열에서 n번째 불길한 수를 구하시오.
제한사항
- n은 5,000이하의 자연수이다.
입출력 예
n | result |
1 | 4 |
2 | 13 |
3 | 44 |
설계
- index를 증가시키며 기존의 배열에서 지속적으로 4와 13을 붙여준다.
def solution(n):
number = ['4', '13']
index = 0
while 1: # index를 증가시키며 기존의 배열에서 지속적으로 4와 13을 붙여준다.
if int(len(number) / 2) == n: # appped를 2번씩 하니 전체 n의 개수만큼만 필요, 나누기 2만큼 반복하다
break
number.append(number[index] + '4')
number.append(number[index] + '13')
index += 1
for i in range(len(number)): # 정수로 변환 & 정렬
number[i] = int(number[i])
number.sort()
return number[n - 1]
'PS (Problem Solving) > Programmers' 카테고리의 다른 글
[프로그래머스] 피로도 (0) | 2022.12.13 |
---|---|
[프로그래머스] 과일 장수 (0) | 2022.12.12 |
[프로그래머스] 귤 고르기 (0) | 2022.12.11 |
[프로그래머스] 모음 사전 (0) | 2022.12.10 |
[프로그래머스] 주식가격 - 자바스크립트, 파이썬 (0) | 2022.12.09 |