Skip to content

Commit 0faa72e

Browse files
committed
[Silver III] Title: 1로 만들기, Time: 152 ms, Memory: 188888 KB -BaekjoonHub
1 parent d9f11ce commit 0faa72e

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# 1463번
2+
n = int(input())
3+
4+
dp = [0] * 10000001
5+
6+
for i in range(2, n+1):
7+
dp[i] = dp[i-1] + 1
8+
9+
if i%2 == 0:
10+
dp[i] = min(dp[i],dp[i//2]+1)
11+
if i%3 == 0:
12+
dp[i] = min(dp[i],dp[i//3]+1)
13+
14+
print(dp[n])
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# [Silver III] 1로 만들기 - 1463
2+
3+
[문제 링크](https://www.acmicpc.net/problem/1463)
4+
5+
### 성능 요약
6+
7+
메모리: 188888 KB, 시간: 152 ms
8+
9+
### 분류
10+
11+
다이나믹 프로그래밍
12+
13+
### 제출 일자
14+
15+
2025년 10월 28일 18:42:09
16+
17+
### 문제 설명
18+
19+
<p>정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다.</p>
20+
21+
<ol>
22+
<li>X가 3으로 나누어 떨어지면, 3으로 나눈다.</li>
23+
<li>X가 2로 나누어 떨어지면, 2로 나눈다.</li>
24+
<li>1을 뺀다.</li>
25+
</ol>
26+
27+
<p>정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오.</p>
28+
29+
### 입력
30+
31+
<p>첫째 줄에 1보다 크거나 같고, 10<sup>6</sup>보다 작거나 같은 정수 N이 주어진다.</p>
32+
33+
### 출력
34+
35+
<p>첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다.</p>
36+

0 commit comments

Comments
 (0)