본문 바로가기

코테

(85)
백준 11050 : 이항계수1 c++ 정답 단계별 풀기 중이라서 단계별로 푸는 느낌 그대로 원래 정의대로 먼저 구현함 이게 되면 문제를 안냈을 거라고 생각했지만 맞았음 알고보니 다음문제가 다이나믹프로그래밍임 내일해야지~ https://github.com/o920/baekjoon/blob/master/11050_factorial.cpp o920/baekjoon Contribute to o920/baekjoon development by creating an account on GitHub. github.com // 이항계수 정의 그대로 구현 #include using namespace std; int factorial(int n) { int a = 1; for (int i = 1; i > n >> k; cout
백준 3036 : 링 c++ 정답 https://github.com/o920/baekjoon/blob/master/3036.cpp o920/baekjoon Contribute to o920/baekjoon development by creating an account on GitHub. github.com #include using namespace std; int arr[100]; //최대공약수 구하는 함수 int gcd(int a, int b) { return a % b ? gcd(b, a%b) : b; } int main() { //입력받기 int n; cin >> n; for (int i = 0; i > arr[i]; // 기약분수 = 기준이 되는 첫번째 항을 최대공약수로 나눈 값 / 해당 반지름을 최대..
백준 2981 : 검문 c++ 정답 https://github.com/o920/baekjoon/blob/master/2981.cpp o920/baekjoon Contribute to o920/baekjoon development by creating an account on GitHub. github.com #include #include using namespace std; int arr[100]; // 입력받는 배열 int ans[100]; // 최대공약수의 약수를 구하는 배열 int gcd(int a, int b) { // 최대공약수 구하는 함수 return a % b ? gcd(b, a%b) : b; } int main() { //입력받기 int n; cin >> n; for (int i = 0; i > ..
백준 11399 : ATM c++ 정답(그리디 알고리즘) 1. n과 p배열을 입력받음 2. p배열을 오름차순으로 sort 3. 정렬된 p배열의 합을 구한다. 배열을 첫번째는 n번, 두번째는 n-1번 더하면 됨 https://github.com/o920/baekjoon/blob/master/11399.cpp o920/baekjoon Contribute to o920/baekjoon development by creating an account on GitHub. github.com #include #include using namespace std; int p[1000]; int n; int sum(int s, int a) { if (a == 0) return s; for (int i = a-1; i >=0; i--) { s += p[i]; } return su..
백준 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 >..