- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dfs
- 다이나믹 프로그래밍
- 춤
- C++
- ubuntu
- BFS
- 시뮬레이션
- baek joon
- 삼성 알고리즘
- 아파치
- dp
- 공연
- 우분투
- Graph
- Visual Studio Code
- 백준
- dynamic programming
- Algorithm
- 알고리즘
- simulation
- filezila server
- 동적계획법
- 그래프
- BOJ
- 배틀
- 비주얼 스튜디오 코드
- apache
- cube sound
- 넓이 우선 탐색
- sw expert academy
목록알고리즘 (35)
댄코 - 댄싱코딩
왜 이문제가 DP분류로 되어있는지 잘 모르겠다. DP로 생각하다가 막혀서 다르게 풀었다.#include using namespace std; int main(){ int N[3] = {0}; int cnt=0; scanf("%d %d %d",&N[0],&N[1],&N[2]); while(true){ int aSide = N[1]-N[0]; int bSide = N[2]-N[1]; if(aSide == 1 && bSide == 1){ break; }else if(aSide > bSide){ N[2] = N[1]; N[1] = N[1]-1; }else if(aSide
이전 문제들은 최대,최솟값을 구하는 문제였는데 연산횟수를 구하라해서 당황했다.#include #include using namespace std; int main(){ int N = 0; int dp[1000000]={0,0,1,1,}; scanf("%d",&N); for(int i = 4;i
계단 오르는데 규칙이 있어 이 규칙에 따른 점화식을 세우느라 고생했다. d[i][0]은 전층과 현재층을 연속으로 밟았을 때, d[i][1]은 전층을 밟지 않았을 때(전전층에서 뛰어넘음)의 최댓값을 저장step[i]에 그 층의 점수를 저장한다. 전층과 현재층을 연속으로 밟았을 경우,d[i-1]에서 전층을 밟지 않아야하므로 d[i-1][1]에 현재층인 step[i]를 더해야한다.(oo)d[i][0] = d[i-1][1]+step[i] 전층을 밟지 않았을 때(전전층에서 뛰어넘음)의 경우,전전층이 연속으로 밟아서 현재층으로 뛰어넘었거나 --- d[i-2][0](ooxo)전전층 또한 전층을 밟지않은 상태에서 현재층으로 뛰어넘거나 --- d[i-2][1] (xoxo)둘 중 최댓값에 step[i]를 저장해야한다. #..
이문제도 DP를 몰라 다른방법으로 시도하가다 많이 틀렸다.#include #include using namespace std; int main() { int N = 0; int d[501][501]; scanf("%d", &N); for (int i = 0; i