본문 바로가기

Algorithm/BOJ211

[BOJ] 16198번: 에너지 모으기 (c++) https://www.acmicpc.net/problem/16198 16198번: 에너지 모으기 N개의 에너지 구슬이 일렬로 놓여져 있고, 에너지 구슬을 이용해서 에너지를 모으려고 한다. i번째 에너지 구슬의 무게는 Wi이고, 에너지를 모으는 방법은 다음과 같으며, 반복해서 사용할 수 있� www.acmicpc.net N - 1길이의 새로운 구슬벡터를 만들어서 재귀함수 호출 #include #include #include using namespace std; int max_sum; void go(vector& nrg, int sum) { // 구슬이 2개만 남으면 최대합계 갱신 후 종료 int N = nrg.size(); if (N == 2) { max_sum = max(sum, max_sum); ret.. 2020. 6. 11.
[BOJ]16197번: 두 동전 (c++) https://www.acmicpc.net/problem/16197 16197번: 두 동전 N×M 크기의 보드와 4개의 버튼으로 이루어진 게임이 있다. 보드는 1×1크기의 정사각형 칸으로 나누어져 있고, 각각의 칸은 비어있거나, 벽이다. 두 개의 빈 칸에는 동전이 하나씩 놓여져 있고, �� www.acmicpc.net dfs 풀이 #include #include #include using namespace std; int dr_x[4] = { 0, 1, 0, -1 }; int dr_y[4] = { 1, 0, -1, 0 }; int N, M, min_cnt = 11; vector map; // 범위 밖에 있는지 체크 bool inline is_out(int x, int y) { return (x < 0 |.. 2020. 6. 10.
[BOJ]15658번: 연산자 끼워넣기 (2) (c++) https://www.acmicpc.net/problem/15658 15658번: 연산자 끼워넣기 (2) 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1보다 크거나 같고, 4N보다 작거나 같은 4개의 정수가 주어지는데, 차례대� www.acmicpc.net + - x % 중 하나를 연산하면 연산 횟수를 차감하는 방식으로 백트랙킹 #include #include #include #include using namespace std; // 답안의 범위가 -10억 ~ 10억 int max_num = numeric_limits::min(); int min_num = numeric_limits::ma.. 2020. 6. 10.
[BOJ]14225번: 부분수열의 합 (c++) https://www.acmicpc.net/problem/14225 14225번: 부분수열의 합수열 S가 주어졌을 때, 수열 S의 부분 수열의 합으로 나올 수 없는 가장 작은 자연수를 구하는 프로그램을 작성하시오. 예를 들어, S = [5, 1, 2]인 경우에 1, 2, 3(=1+2), 5, 6(=1+5), 7(=2+5), 8(=1+2+5)을 만들 �www.acmicpc.net 방법 1: 백트랙킹#include #include using namespace std;const int MAX = 100000 * 20;void dfs(vector& nums, vector &visit, int num, int idx){ // 부분수열의 합계 num 방문체크 하기 visit[num] = true; // 인덱스 범.. 2020. 6. 10.