Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 2003 error
- pytorch-tutorial
- 110 옮기기
- 알고리즘
- 미국 이란 전쟁
- Convolutional Neural Networks
- 장영준
- 리멤버나우
- flaks
- 오픈소스
- git-lfs
- cs231
- 딥러닝
- C++
- multi-task learning
- 경제 요약
- flask
- 리멤버나우 요약
- 2003 에러
- but how?
- 웹 독학
- 코딩테스트
- 프로그래머스 여행경로
- 뤼이드
- 스무고개 Metric
- aws rds
- git password
- 백준 2193
- 이베이 매각
- 프로그래머스
Archives
- Today
- Total
Nam's
[백준 1463] 1로 만들기 (Dynamic Programming) 본문
참고 블로그: https://blockdmask.tistory.com/254
처음에는 top-down 방식으로 접근해서 삽질했다.
논리가 틀린 것 같진 않은데 시간 초과가 떴다.

DP카테고리에 있는 문제였고, 아직 DP를 모르기 때문에 구글링했다.
문제 번호를 바로 구글링했는데, 지금 생각해보니 DP를 먼저 검색해볼 걸 그랬다.
결론적으로는 문제 풀면서 DP를 배웠으니 상관없는 것 같기도 하고..
코드 참고한 블로그: https://blockdmask.tistory.com/254
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
|
#include <iostream>
#include <cstring>
using namespace std;
int main() {
int N;
cin >> N;
int arr[1000001];
memset(arr, 0, sizeof(int)*(N+1));
arr[1] = 0; //1은 0번
for(int i = 2; i <= N; i++){
arr[i] = arr[i-1] + 1;
if(i%2 == 0){
arr[i] = min(arr[i], arr[i/2]+1);
}
if(i%3 == 0){
arr[i] = min(arr[i], arr[i/3]+1);
}
}
cout << arr[N];
return 0;
}
|
https://blockdmask.tistory.com/257?category=250801
이건 같은 블로거가 Queue를 이용해서 BFS로 푼 방법이다.
나는 DFS로 풀어서 시간 초과가 나왔던 것 같다.
Dynamic Programming 동적 계획법:
'개발 > Coding Test' 카테고리의 다른 글
[백준 2193] 이친수 (DP 동적프로그래밍) (2) | 2020.01.03 |
---|
Comments