https://www.acmicpc.net/problem/1463
DP 문제인데여
밑에 제 코드가 자꾸 실패떠서 재귀로 풀긴했는데
아무리 생각해봐도 밑에 코드가 틀린 이유를 모르겠네요...
알려주실분...?
8개의 댓글
무분별한 사용은 차단될 수 있습니다.
https://www.acmicpc.net/problem/1463
DP 문제인데여
밑에 제 코드가 자꾸 실패떠서 재귀로 풀긴했는데
아무리 생각해봐도 밑에 코드가 틀린 이유를 모르겠네요...
알려주실분...?
silentScreamer
디피테이블을 1부터 올라가면서 해보면 어때여
에더리
해볼게여
별개로 제가 궁금한건 저 코드가 왜 안되는건지가..... ㅜ
classica33
If문에서 continue로 날리면 아래 거는 테스트 못 하고 넘어가자늠
에더리
세상에 마상에
땡큐땡큐
RX7900XTX
c++ 코드인데 나 이거 품
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> Data;
int main()
{
int Input_iN = 0;
cin >> Input_iN;
Data.resize(Input_iN + 1);
Data[1] = 0;
for (int i = 2; i <= Input_iN; ++i)
{
Data[i] = Data[i - 1] + 1;
if (0 == i % 2)
Data[i] = min(Data[i], Data[i / 2] + 1);
if (0 == i % 3)
Data[i] = min(Data[i], Data[i / 3] + 1);
}
cout << Data[Input_iN];
return 0;
}
RX7900XTX
원리가
Data[i] = Data[i - 1] + 1; // 이전 값보다 1크니깐 -1만 하면 되니 횟수 1증가
Data[i] = min(Data[i], Data[i / 2] + 1); // 근데 2배수면 이전 2배수 값에 횟수 +1 (값이 4라면 2나누기 2번하는거라서 값이 2일 때 횟수 1회에 +1해서 2회라는거)
Data[i] = min(Data[i], Data[i / 3] + 1); // 3배수(2배수랑 논리 같음)
에더리
🙏
숨은음은
저 문제가 왜 DP인지부터 명확히 생각해봐