본문 바로가기

단계별로 풀어보기14

[백준] 단계별로 풀어보기 > 그리디 알고리즘 (c++) 문제 1. 동전 0 가장 금액이 큰 동전부터 개수를 세면서 k원에서 차감해줌 k가 0이되면 동전의 개수를 출력 #include #include using namespace std; int main() { int n, k, tmp; map m; map::reverse_iterator reiter; cin >> n >> k; for (int i = 0; i > tmp; m[tmp] = 0; } for(reiter = m.rbegin(); reiter != m.rend(); reiter++) { while (reiter->first first]++; k -= reiter->first; } if (k second > 0) { tmp += reiter->second; } } cout.. 2022. 2. 20.
[백준] 단계별로 풀어보기 > 동적 계획법 1 (c++) 문제 1. 피보나치 함수 피보나치 f(n) 이 몇개의 f(0)과 f(1)로 이루어 져 있는지 출력하는 문제 점화식(?) { f(i).first, f(i).second } = { f(i-1).first+f(i-2).first, f(i-1).second+f(i-2).second } 을 찾음 #include #include #include using namespace std; int main() { int test_case; cin >> test_case; vector f; f.push_back({ 1, 0 }); f.push_back({ 0, 1 }); for (int i = 2; i > n[i]; cout 2022. 2. 16.
[백준] 단계별로 풀어보기 > DFS와 BFS (c++) 문제 1. DFS와 BFS #include #include #include #include #include using namespace std; void func_1260_dfs_recursion(int n, vector * graph, bool* visited) { visited[n] = true; cout > start_node; vector *graph = new vector[n+1]; bool *visited = new bool[n+1]; memset(visited, 0, sizeof(bool) * (n+1)); for (int i = 0; i > u >> v; graph[u].push_back(v); graph[v].push_back(u); } for (int i .. 2022. 2. 5.
[백준] 단계별로 풀어보기 > 정렬 (c++) 문제 1. 수 정렬하기 (브론즈 1) vector로 입력 받아 sort로 정렬 #include #include #include using namespace std; int main() { int a, num; vector v; cin >> a; for (int i = 0; i > num; v.push_back(num); } sort(v.begin(), v.end()); for (int i = 0; i > num; v.push_back(num); } sort(v.begin(), v.end()); for (int i = 0; i < v.size(); i++) { cou.. 2022. 1. 30.
[백준] 단계별로 풀어보기 > 브루트포스 (c++) 문제 1. 블랙잭 (브론즈 2) #include using namespace std; int main(){ int n, m, sum, min, res = 0; cin >> n >> m; int* card = new int[n]; bool is_flag; for (int i = 0; i > card[i]; } sum = 0; min = m; is_flag = true; for (int i = 0; i < n - 1 && is_flag; i++) { for (int j = i + 1; j < n && is_flag; j++) { for (int k = j + 1; k < n && is_flag; k++) { sum = card[i] + card[j] + card[k]; if (.. 2022. 1. 26.
[백준] 단계별로 풀어보기 > 재귀 (c++) 문제 1. 팩토리얼 #include using namespace std; int func_10872_factorial(int n) { if (n == 0) return 1; else return n * func_10872_factorial(n-1); } int main() { int a; cin >> a; cout > a; cout 2022. 1. 25.
[백준] 단계별로 풀어보기 > 기본 수학 2 (c++) 문제 1. 소수찾기 #include typedef unsigned long long ll; using namespace std; int is_prime_number_custom(ll input) { if (input a; int* arr = new int[a]; for (int i = 0; i > arr[i]; if (is_prime_number_custom(arr[i])) { cnt++; } } cout a >> b; for (int i = a; i h; if (min > h - y) min = h - y; cout > a >> b; if (x.count(a)) x[a]++; else x[a] = 1; i.. 2022. 1. 19.
[백준] 단계별로 풀어보기 > 기본 수학 1 (c++) 문제 1. 손익분기점 #include using namespace std; int main() { int a, b, c; cin >> a >> b >> c; int unit_profit = c - b; if (unit_profit 3 -> 4 ... 그리고 a/b 가 a는 증가, b는 감소 int lv, pos; int a, b; // 계층 구하기 for (int i = 0; i a; cout a >> b >> v; if (v 0) { day++; } } cout a; for (int i = 0; i > h >> w >> n; f += (n % h) -1; if (n % h == 0) { f = h; no.. 2022. 1. 18.
[백준] 단계별로 풀어보기 > 함수 (c++) 문제 1. 정수 N개의 합 #include using namespace std; long long sum(vector& a) { long long ans = 0; for (int i = 0; i < a.size(); i++) { ans += a.at(i); } return ans; } 문제 2. 셀프 넘버 #include #include #include using namespace std; int selfnumber(int a) { int digit = to_string(a).size(), tmp = 0, a_copy = a, sum = a; int* arr = new int[digit]; for (int i = 0; i < digit; i++) { tmp = pow(10, (digit - (i + 1).. 2022. 1. 14.
[백준] 단계별로 풀어보기 > 1차원 배열 (c++) 문제 1. 최소, 최대 #include #include using namespace std; int min(vector& arr) { int min = arr.front(); for (int i = 0; i max) { max = arr.at(i); } } return max; } int main() { int a, tmp; vector arr; cin >> a; for (int i = .. 2022. 1. 14.
[백준] 단계별로 풀어보기 > while문 (c++) 문제 1. A+B - 5 #include using namespace std; int main() { int a, b; while (true) { cin >> a >> b; if (a + b == 0) { break; } cout a >> b) { cout a; b = a; do { func(b, &front_a, &back_a); func(front_a + back_a, NULL, &back_b); b = back_a * 10 + back_b; cycle++; } while (a != b); cout 2022. 1. 14.
[백준] 단계별로 풀어보기 > for문 (c++) 문제 1. 구구단 #include using namespace std; int main() { int a; cin >> a; for (int i=1; i> a >> b; arr[i] = a + b; } for (int i = 0; i > a >> b; arr[i] = a + b; } for (int i = 0; i b[i]; arr[i] = a[i] + b[i]; } for (int i = 0; i < cnt; i++) { cout 2022. 1. 13.
[백준] 단계별로 풀어보기 > if문 (c++) 문제 1. 두 수 비교하기 #include using namespace std; int main() { int a, b; cin >> a; cin >> b; if (a > b) { cout = 60) { b = "D"; } if (a >= 70) { b = "C"; } if (a >= 80) { b = "B"; } if (a >= 90) { b = "A"; } cout > a; if(a % 4 == 0 && a % 100 != 0) { answer = 1; } if (a % 400 == 0) { answer = 1; } cout > x; cin >> y; if (x > 0 && y > 0) { answer = 1; } if (x 0) { answer = 2; } if (x < 0 &&.. 2022. 1. 12.
[백준] 단계별로 풀어보기 > 입출력과 사칙연산(c++) 문제 1. Hello World #include int main(){ std::cout 2022. 1. 12.