-
[BOJ] 1049 : 기타줄
1049 : 기타줄 풀이 단가 후려치기 ㄱㄱ 코드 #include <stdio.h> int min(int a, int b) { return a < b ? a : b; } int n, m, a = 1e9, b = 1e9, c, d; int main() { scanf("%d %d", &n, &m); while (m--) { scanf("%d %d", &c, &d); a = min(a, c); b = min(b, d); } a = min(a, b*6); printf("%d", n/6*a + min(a, (n%6)*b)); return 0; } 아무말 백준, 백준 온라인...
-
[BOJ] 9252 : LCS 2
9252 : LCS 2 풀이 http://codersbrunch.blogspot.kr/2016/12/9252-lcs-2.html 코드 #include <stdio.h> #include <algorithm> int dp[1234][1234]; char s1[1234], s2[1234]; void f(int i, int j) { if (!dp[i][j]) return; if (s1[i] == s2[j]) { f(i-1, j-1); putchar(s1[i]); } else dp[i-1][j] > dp[i][j-1] ? f(i-1, j) : f(i, j-1); } int main() { scanf("%s\n%s", s1 + 1, s2 + 1); int i, j; for (i = 1; s1[i]; i++) for (j = 1; s2[j]; j++) dp[i][j] = std::max({ dp[i-1][j], dp[i][j-1],...
-
[BOJ] 11000 : 강의실 배정
11000 : 강의실 배정 풀이 일반적으로 스위핑 해서 풀면 (start == end)인 경우를 처리하기가 까다롭다. pq를 이용해서 풀어주자. 코드 #include <stdio.h> #include <queue> #include <algorithm> using namespace std; typedef pair<int, int> pii; int n; pii p[200002]; priority_queue<pii> pq; int main() { scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d %d", &p[i].first, &p[i].second); } sort(p, p + n); for (int i = 0; i < n; i++) { int s =...
-
[BOJ] 1449 : 수리공 항승
1449 : 수리공 항승 풀이 앞에서부터 순서대로 덮어주면 된다 파이프 터진 순서가 정렬되어 있다는 얘기가 없으니 정렬도 꼭 해주자 코드 #include <stdio.h> #include <algorithm> int n, l, a[1001]; int main() { scanf("%d %d", &n, &l); for (int i = 0; i < n; i++) scanf("%d", &a[i]); std::sort(a, a + n); int tmp = a[0], cnt = 1; for (int i = 0; i < n; i++) if (tmp + l - 1 < a[i]) tmp...
-
[BOJ] 4796 : 캠핑
4796 : 캠핑 풀이 룰루랄라 코드 #include <stdio.h> int a, b, c, d; int main() { while (1) { scanf("%d %d %d", &a, &b, &c); if (!a && !b && !c) break; printf("Case %d: %d\n", ++d, c/b*a + (c%b < a ? c%b : a)); } return 0; } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이
-
[BOJ] 2503 : 숫자 야구
2503 : 숫자 야구 풀이 모든 숫자랑 모든 질문을 비교 해주자. 코드 #include <stdio.h> int n, ans, a[3], b[3]; struct ABC { int num, st, ba; } qry[101]; int main() { scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d %d %d", &qry[i].num, &qry[i].st, &qry[i].ba); } for (int i = 123; i <= 987; i++) { int cnt = 0; a[0] = i/100, a[1] = i/10%10, a[2] = i%10; if (!a[1]...
-
[BOJ] 10448 : 유레카 이론
10448 : 유레카 이론 풀이 1000 이하인 삼각수를 모두 구해보자! 그러한 (1000 이하인) 삼각수의 개수가 얼마 되지 않으므로 3중 for문 돌면서 완전탐색 해주면 된다! 코드 #include <stdio.h> #include <vector> using namespace std; int tc, n, ans; vector<int> v; int main() { for (int i = 1; i*(i+1)/2 <= 1000; i++) v.push_back(i*(i+1)/2); for (scanf("%d", &tc); tc--;) { scanf("%d", &n); ans = 0; for (int i : v) for (int j : v) for (int k :...
-
[BOJ] 3085 : 사탕 게임
3085 : 사탕 게임 풀이 맵의 크기가 50*50밖에 되지 않는다 (!) 인접한 칸을 swap하는 경우도 최대 50*49*2번밖에 되지 않는다 (!!) 모든 (x, y)를 돌면서 스왑 놀이를 해보자~! 코드 #include <stdio.h> #include <algorithm> using namespace std; const int dx[] = { 0,1 }; const int dy[] = { 1,0 }; int n, ans; char a[55][55]; int check() { int ret = 1, cnt = 1; for (int i = 1; i <= n; i++) { for...
-
[BOJ] 10251 : 운전 면허 시험
10251 : 운전 면허 시험 풀이 dp[i][j][k][d] = (i, j)까지 방향을 k번 틀고 d방향에서 왔을 때의 최소 연료량 아 졸리다 자세한 풀이는 다른 블로그를 보는 게 더 좋겠다! 코드 #include <stdio.h> #include <string.h> int min(int a, int b) { return a < b ? a : b; } int n, m, l, g, dp[102][102][102][2], gas[102][102][2]; int main() { int T; for (scanf("%d", &T); T; T--) { scanf("%d %d %d %d", &n, &m, &l, &g); for...
-
[BOJ] 10252 : 그리드 그래프
10252 : 그리드 그래프 풀이 항상 사이클을 만들 수 있다. 첫 번째 행을 제외하고 ㄹ 모양으로 돌다가 마지막에 첫 번재 행으로 돌아와서 올라가주면 된다. 코드 #include <stdio.h> int main() { int tc; for (scanf("%d", &tc); tc; tc--) { int n, m, i, j; scanf("%d %d", &n, &m); puts("1"); for (i = 0; i < m; i++) printf("(%d,%d)\n", 0, i); for (i = 1; i < n; i++) { if (i % 2) for (j =...