Skip to content

Commit 2f7861f

Browse files
authored
Update 5.py
1 parent 7d3d2cf commit 2f7861f

File tree

1 file changed

+23
-26
lines changed

1 file changed

+23
-26
lines changed

16/5.py

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,27 @@
1-
# n번째 못생긴 수를 찾는 함수
2-
def solve(n):
3-
ugly = [0] * n # 못생긴 수를 담기 위한 테이블 (1차원 DP 테이블)
4-
ugly[0] = 1 # 첫 번째 못생긴 수는 1
1+
n = int(input())
52

6-
# 2배, 3배, 5배를 위한 인덱스
7-
i2 = i3 = i5 = 0
8-
# 처음에 곱셈 값을 초기화
9-
next2, next3, next5 = 2, 3, 5
3+
ugly = [0] * n # 못생긴 수를 담기 위한 테이블 (1차원 DP 테이블)
4+
ugly[0] = 1 # 첫 번째 못생긴 수는 1
105

11-
# 1부터 n까지의 못생긴 수들을 찾기
12-
for l in range(1, n):
13-
# 가능한 곱셈 결과 중에서 가장 작은 수를 선택
14-
ugly[l] = min(next2, next3, next5)
15-
# 인덱스에 따라서 곱셈 결과를 증가
16-
if ugly[l] == next2:
17-
i2 += 1
18-
next2 = ugly[i2] * 2
19-
if ugly[l] == next3:
20-
i3 += 1
21-
next3 = ugly[i3] * 3
22-
if ugly[l] == next5:
23-
i5 += 1
24-
next5 = ugly[i5] * 5
6+
# 2배, 3배, 5배를 위한 인덱스
7+
i2 = i3 = i5 = 0
8+
# 처음에 곱셈 값을 초기화
9+
next2, next3, next5 = 2, 3, 5
2510

26-
# n번째 못생긴 수를 출력
27-
return ugly[n - 1]
11+
# 1부터 n까지의 못생긴 수들을 찾기
12+
for l in range(1, n):
13+
# 가능한 곱셈 결과 중에서 가장 작은 수를 선택
14+
ugly[l] = min(next2, next3, next5)
15+
# 인덱스에 따라서 곱셈 결과를 증가
16+
if ugly[l] == next2:
17+
i2 += 1
18+
next2 = ugly[i2] * 2
19+
if ugly[l] == next3:
20+
i3 += 1
21+
next3 = ugly[i3] * 3
22+
if ugly[l] == next5:
23+
i5 += 1
24+
next5 = ugly[i5] * 5
2825

29-
n = int(input())
30-
print(solve(n))
26+
# n번째 못생긴 수를 출력
27+
print(ugly[n - 1])

0 commit comments

Comments
 (0)