본문 바로가기

Algorithm

(2139)
(C++) - 백준(BOJ) 10884 : 쉬운 계단 수 답 //D[i][j] = i길이를 가진 수의 제일 마지막에 오는 수 j(0 N; for (int i = 1; i
(C++) - 백준(BOJ) 2839 : 설탕배달 답 //1.3의 배수만 일 때 1)N%5%3==0 // 2)N%5%3!=0 //2.5의 배수일 때 cout > N; if (N % 5 == 0) cout = 3) { N -= 3; cnt++; if (N % 5 == 0) { cnt += N / 5; N %= 5; } } if (N != 0) { cnt = 0; } if (cnt != 0) { cout cnt ? cnt : com); } } else if (N % 5 != 0 && N % 3 != 0) { while (N >= 3) { N -= 3; cnt++; if (N % 5 == 0) { cnt += N / 5; N %= 5; } } if (N != 0) cout
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 11057번:오르막 수 답 //D[i][j] = 길이 i인 배열의 마지막에 들어갈 j//D[i][j] += D[i-1][k](0 N; for (int i = 0; i
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 9461번:파도반 수열 답 //P[N] = P[N-1] + P[N-5]1234567891011121314151617#include #include using namespace std;long long P[101] = { 0,1,1,1,2,2, };int main() { long long T,N; cin >> T; for (int i = 6; i N; cout
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 11048번:이동하기 답 //이동할때 오른쪽, 아래쪽, 오른쪽 아래 대각선 3가지 방법으로 이동할 수 있다.//(i,j)로 이동할 때 최대값을 D[i][j]라 하면//D[i][j] = max(D[i-1][j],D[i][j-1],D[i-1][j-1])+A[i][j]12345678910111213141516#include #include using namespace std;int D[1001][1001], A[1001][1001];int main() { int N, M; cin >> N >> M; for (int i = 1; i A[i][j]; for (int i = 1; i
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 2156번:포도주 시식 답 #include #include using namespace std;//A[i] = 입력//D[i] = i번쨰 포도주를 마셨을 때 최대// i번째 포도주를 고르지 않았을 때:D[i-1]//1번 연속으로 마셨을 때:D[i-2] + A[i]//2번 연속으로 마셨을 때: D[i-3]+A[i-1]+A[i]int A[10001], D[10001];int main() {int n, ans=0;cin >> n;for (int i = 1; i > A[i];D[1] = A[1];D[2] = A[1] + A[2];for (int i = 3; i
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 11722번:가장 긴 감소하는 부분 수열 답 algorithm헤더가 필요한 *max_element()함수를 사용해 풀었습니다. *max_element(배열.begin(),배열.end())무조건 시작은 0번째 인덱스부터 입니다.123456789101112131415161718192021222324#include #include #include using namespace std;int main() { int n; cin >> n; //*max_element(배열의처음(*0번째 인덱스 부터 시작한다).begin(),끝.end()) vector a(n); vector d(n); for (int i = 0; i > a[i]; for (int i = 0; i
(C++) - 백준(BOJ)코딩 2579번 : 계단오르기 답 www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 2차원 bottom up dp로 풀었습니다 풀이방법 1. 각 계단을 stair[i]로 입력 받습니다. 2. 점화식을 생각합니다. i번째 계단을 올라갔을 때 몇 번 연속해 올라가 있는지에 대한 상태가 필요하므로 2차원 배열 d를 선언합니다. d[i][j] = i번째 계단을 j번 연속으로 올라갈 때 최대값 d[i][1] => 1번 연속으로 올라갔으므로 i-2번째 계단은 올라가거나 건너뛰거나 상관없습니다. 따라서 다음 점화식을 ..