티스토리 뷰
문제 링크
https://www.acmicpc.net/problem/1463
1463번: 1로 만들기
첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.
www.acmicpc.net
1부터 입력으로 받은 n까지 bottom-up 방식으로 3가지 연산방식의 최솟값을 구해나가야 합니다.
먼저 n이 1인 경우 연산을 할 필요가 없으므로 0 입니다. d[1] = 0
1. n에서 1을 빼는 경우는 n-1의 최솟값에서 한 번의 연산 횟수(1을 뺀다)가 추가됩니다.
2. n이 2로 나누어 떨어지면 n / 2의 최솟값에서 한 번의 연산 횟수(2로 나눈다)가 추가됩니다.
3. n이 3으로 나누어 떨어지면 n / 3의 최솟값에서 한 번의 연산 횟수(3으로 나눈다)가 추가됩니다.
위 3가지 중 최솟값이 정답이 됩니다.
구현 코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <algorithm> | |
#define endl '\n' | |
#define fastio cin.sync_with_stdio(false); cin.tie(nullptr) | |
using namespace std; | |
const int MAX = 1000001; | |
int d[MAX]; | |
int main(){ | |
fastio; | |
int n; | |
cin >> n; | |
for(int i=2;i<=n;i++){ | |
d[i] = d[i-1] + 1; | |
if(i % 2 == 0) d[i] = min(d[i], d[i/2] + 1); | |
if(i % 3 == 0) d[i] = min(d[i], d[i/3] + 1); | |
} | |
cout << d[n] << endl; | |
return 0; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
n = int(input()) | |
dp = [] | |
dp.append(0) | |
dp.append(0) | |
for i in range(2,n+1): | |
dp.append(dp[i-1] + 1) | |
if i % 2 == 0: | |
dp[i] = min(dp[i], dp[i // 2] + 1) | |
if i % 3 == 0: | |
dp[i] = min(dp[i], dp[i // 3] + 1) | |
print(dp[n]) |
'Coding Test > 백준' 카테고리의 다른 글
[C++/Python] 백준 11727 - 2xn 타일링 2 (0) | 2020.07.22 |
---|---|
[C++/Python] 백준 11726 - 2xn 타일링 (0) | 2020.07.21 |
[C++/Python] 백준 13015 - 별찍기 - 23 (0) | 2020.07.17 |
[C++/Python] 백준 10997 - 별찍기 - 22 (0) | 2020.07.16 |
[C++/Python] 백준 10996 - 별찍기 - 21 (0) | 2020.07.15 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- C++
- pyspark
- HiveQL
- 코딩인터뷰 완전분석
- hive
- 알고스팟
- 하이브
- 합친 lis
- HDFS
- 하둡
- 팰린드롬 구하기
- 완전탐색
- 종만북
- 두니발 박사의 탈옥
- python
- import
- 삼각형 위의 최대 경로 수 세기
- microwaving lunch boxes
- 2225
- 삼각형 위의 최대 경로
- 분할정복
- Django
- Hadoop
- 외발 뛰기
- 스파크
- 백준
- 출전 순서 정하기
- Jaeha's Safe
- 배열과 문자열
- Sqoop
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 |
글 보관함