본문 바로가기

C++

(5)
백준 11047 : 동전 0 c++ 정답 드디어 백준 단계별로풀어보기 다이나믹프로그래밍 1 을 끝내고 그리디로 넘어옴 아무튼 그렇다 이말임 1. n과 k를 받음 2. 동전 배열을 받음 3. 동전 배열이 오름차순으로 되어있으니까 거꾸로 하나씩 빼주면 됨 https://github.com/o920/baekjoon/blob/master/11047.cpp o920/baekjoon Contribute to o920/baekjoon development by creating an account on GitHub. github.com #include using namespace std; int N[10]; int main() { int n, k; cin >> n >> k; for (int i = 0; i > N[i]; int co..
백준 12865 : 평범한 배낭 c++ 정답 (배열 사용) 1. 입력 n 과 k를 받음 2. n개 만큼 무게와 가치의 pair를 받음 3. dp배열을 nxk크기로 만듦 4. 물건을 가져가기로 선택했을 때 얻는 가치를 배열에 넣어줌, 안가져가면 이전 배열의 값을 넣어줌 5. dp[i][j] = max(dp[i-1][j], i위치의 가치 + dp[i-1][j-i의 무게]) https://github.com/o920/baekjoon/blob/master/12865.cpp o920/baekjoon Contribute to o920/baekjoon development by creating an account on GitHub. github.com #include #include using namespace std; pair N[100]; int dp[100][10000..
백준 1912 : 연속합 c++ 정답 (배열 이용) https://github.com/o920/baekjoon/blob/master/1912.cpp o920/baekjoon Contribute to o920/baekjoon development by creating an account on GitHub. github.com 1. n입력받고 배열 입력받음 2. dp 배열에 dp 채움 3. dp 채우는 방법은 자기 직전 연속합최대와 자신의 합 vs 자신만 있을 때 중 큰 걸로 결정 #include #include using namespace std; int N[100000]; int dp[100000]; int main() { int n; cin >> n; for (int i = 0; i > N[i]; dp[0] = N[0]; in..
백준 11054 : 가장 긴 바이토닉 부분 수열 C++ 정답&해설 https://github.com/o920/baekjoon/blob/master/11054.cpp o920/baekjoon Contribute to o920/baekjoon development by creating an account on GitHub. github.com 1. N 입력 받음 2. N개의 수열 입력 받음 3. 왼쪽에서부터 가장 긴 증가하는 수열 구하기 4. 오른쪽에서부터 가장 긴 증가하는 수열 구하기 5. 왼+오 합친 것 중 가장 큰 수 - 1을 해줌 (Sk가 두번 카운트 됐기 때문) #include #include using namespace std; int N; int num[1000]; int dp_left[1000], dp_right[1000]; int main() { cin >..
백준 2231 : 분해합 C++ 정답 bruteforce로 1부터 N까지 N의 생성자가 될 수 있는 수를 찾고 찾으면 바로 그 수를 출력하고 못찾으면 0을 출력하게 함 https://github.com/o920/baekjoon/blob/master/2231.cpp o920/baekjoon Contribute to o920/baekjoon development by creating an account on GitHub. github.com #include using namespace std; int solution(int n) { int sum = n; while (n) { sum = sum + n % 10; n /= 10; } return sum; } int main() { int N; cin >> N; for (int i = 1; i < ..