본문 바로가기

C++11

[백준] 1450번 : 냅색문제 (냅색, DFS) https://www.acmicpc.net/problem/1450 1450번: 냅색문제 첫째 줄에 N과 C가 주어진다. N은 30보다 작거나 같은 자연수, C는 109보다 작거나 같은 음이 아닌 정수이다. 둘째 줄에 물건의 무게가 주어진다. 무게도 109보다 작거나 같은 자연수이다. www.acmicpc.net #include #define F_I ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); // F_I 사용 시 주의) scanf 와 cin 혼합 사용 금지 #define INF 987654321 using namespace std; typedef long long ll; typedef pair pl; typedef pair pi; ll Min(ll a, .. 2022. 1. 25.
[백준] 10972번 : 다음 순열 https://www.acmicpc.net/problem/10972 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net //C++ #include #define F_I ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); typedef long long ll; using namespace std; int main() { F_I; int n; cin >> n; vector v(n); for (int i = 0; i > v[i]; //입력받은 순열이 가장 마지막 순열이라면, -1 출력 //가.. 2020. 7. 16.
[백준 ] 1748번 : 수 이어 쓰기 1 https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1≤N≤100,000,000)이 주어진다. www.acmicpc.net #include #define F_I ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); using namespace std; int main() { F_I; int n, end, start, sum = 0; bool flag = false; cin >> n; for (int mul = 1, len = 1;; mul *= 10, len++) { if (flag == true) break; start = mul; end = mul * 10-1; if (end >= n) //end 보다.. 2020. 7. 14.
[백준] 2309번 : 일곱 난쟁이 https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net #include using namespace std; int shortman[10]; int main() { int sum = 0; ios::sync_with_stdio(false); cin.tie(NULL); for (int i = 0; i > shortman[i]; sum += shortman[i]; } sort(shortman, shortman + 9); for (int.. 2020. 7. 11.
[백준] 2042번 : 구간 합 구하기 https://www.acmicpc.net/problem/2042 2042번: 구간 합 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄�� www.acmicpc.net //세그먼트 트리 이용 (2042번 - 구간 합 구하기) #include using namespace std; typedef long long ll; ll init(vector & v, vector& tree, int node, int start, int end) { if (start == end) { return tree[node] .. 2020. 7. 9.
[코드포스] 1283B : Candies Division https://codeforces.com/contest/1283/problem/B Problem - B - Codeforces codeforces.com #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); int tc; cin >> tc; for (int i = 0; i > n >> k; int ans = n - n % k; //나올 수 있는 답의 최소 ans += min(n % k, k / 2); cout 문제에 제시된 조건 2개를 만족한다는 가정하에, 최대한 많은 사탕을 나눠줘야 하는 문제이므로 남은 n%k개의 사탕을 최대한 1개씩 아이들에게 각각 .. 2020. 7. 6.