- Notifications
You must be signed in to change notification settings - Fork 846
/
Copy path5.py
27 lines (23 loc) · 761 Bytes
/
5.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
n=int(input())
ugly= [0] *n# 못생긴 수를 담기 위한 테이블 (1차원 DP 테이블)
ugly[0] =1# 첫 번째 못생긴 수는 1
# 2배, 3배, 5배를 위한 인덱스
i2=i3=i5=0
# 처음에 곱셈 값을 초기화
next2, next3, next5=2, 3, 5
# 1부터 n까지의 못생긴 수들을 찾기
forlinrange(1, n):
# 가능한 곱셈 결과 중에서 가장 작은 수를 선택
ugly[l] =min(next2, next3, next5)
# 인덱스에 따라서 곱셈 결과를 증가
ifugly[l] ==next2:
i2+=1
next2=ugly[i2] *2
ifugly[l] ==next3:
i3+=1
next3=ugly[i3] *3
ifugly[l] ==next5:
i5+=1
next5=ugly[i5] *5
# n번째 못생긴 수를 출력
print(ugly[n-1])