본문 바로가기

Algorithm

(2139)
(C++) - 백준(BOJ) 10539번 : 수빈이와 수열 123456789101112131415161718#include using namespace std;int a[101],b[101];int main() { int n,sum = 0; cin >> n; for (int i = 1; i > b[i]; } for (int i = 1; i
(C++) - 백준(BOJ) 5073번 : 삼각형과 세 변 12345678910111213141516171819202122232425262728293031323334353637#include #include using namespace std;int triangle[3]; int main() { while (1) { for (int i = 0; i > triangle[i]; } if (triangle[0] == 0 && triangle[0] == triangle[1] && triangle[0] == triangle[2]) { break; } sort(triangle, triangle + 3);//오름차순으로 정렬 if (triangle[2] >= triangle[1] + triangle[0]) { cout
(C++) - 백준(BOJ) 5032번 : 탄산음료 12345678910111213#include using namespace std;int main() { int e, f, c,total=0; cin >> e >> f >> c; int empty_cola = e + f; //빈 병의 개수 while (empty_cola >= c) { total += empty_cola / c; //빈 병을 탄산음료로 교환한다. empty_cola = empty_cola/c + empty_cola%c; //교환한 탄산음료도 빈 병이 될 수 있으므로 이를 교환하고 남은 빈 병에 더해준다. } cout
(C++) - 백준(BOJ) 2869번 : 달팽이는 올라가고 싶다 1234567891011121314151617#include #include using namespace std; int r, l;int main() { int a, b, v, ans = 0; cin >> a >> b >> v; //낮에는 a미터 올라가고 b미끄러짐 정상에 올라가면 미끄러지지 않음 //a는 무조건 a-b보다 크다 //따라서 v-a 가 a-b로 나누어떨어지면 a만큼만 올라가면 되므로 ans 는 (v-a) / (a-b) + 1이다 //나누어 떨어지지 않는다면 a+(a-b보다 작은 거리) 만큼 올라가야하므로 하루가 더 필요하므로 ans 는 (v-a) / (a-b) + 2이다 int last = v - a; if (last % (a - b) == 0) { ans = last / (a - b) +..
(C++) - 백준(BOJ) 11729번 : 하노이 탑 이동 순서 https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 분할정복 문제였습니다. 풀이방법 1. 1 -> 2로 n-1개 원판 옮김 2. 1 -> 3로 남은 한 개(가장 큰 원판) 옮김 3. 2 -> 3로 n-1개 원판 옮김 이 규칙을 적용하면 됩니다. Code #include using namespace std; //n-1개를 2로 옮기고 //마지막 남은 가장 큰 원판을 3으로 옮긴 뒤 //2에 있는 n-1개의 원판을 3으로 옮겨준다. int..
(C++) - 백준(BOJ) 12738번 : 가장 긴 증가하는 부분 수열 3 12345678910111213141516171819202122232425262728293031323334#include #include #include #include #define MIN -2000000000using namespace std;int n,cnt;int a[1000001];vector ans ;int main() { cin >> n; ans.push_back(MIN); for (int i = 0; i > a[i]; } for (int i = 0; i
(C++) - 백준(BOJ) 12015번 : 가장 긴 증가하는 부분 수열 2 123456789101112131415161718192021222324252627282930313233#include #include #include #include using namespace std;int n,cnt;int a[1000001];vector ans ;int main() { cin >> n; ans.push_back(-1); for (int i = 0; i > a[i]; } for (int i = 0; i
(C++) - 백준(BOJ) 1330번 : 두 수 비교하기 간단한 if 문이었습니다. 12345678910#include using namespace std;int main() { int a, b; cin >> a >> b; if (a > b) { cout