-
[BOJ] 2740 : 행렬 곱셈
2740 : 행렬 곱셈 풀이 으갸갸갸갸갸갸가가가각 코드 #include <cstdio> int n, m, k, a[102][102], b[102][102]; int main() { scanf("%d%d",&n,&m); for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) scanf("%d", &a[i][j]); scanf("%d %d", &m, &k); for (int i = 0; i < m; i++) for (int j = 0; j < k; j++) scanf("%d", &b[i][j]); for (int i = 0; i < n; i++) { for (int...
-
[BOJ] 10974 : 모든 순열
10974 : 모든 순열 풀이 stl 쪼아~~~ 코드 #include <cstdio> #include <algorithm> int main() { int n, a[9]; scanf("%d", &n); for (int i = 0; i < n; i++) a[i] = i+1; do { for (int i = 0; i < n; i++) printf("%d ", a[i]); puts(""); } while (std::next_permutation(a, a+n)); return 0; } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이,...
-
[BOJ] 2960 : 에라토스테네스의 체
2960 : 에라토스테네스의 체 풀이 하앙 나도 에라토스테네스처럼 고수이고 싶다 코드 #include <cstdio> int n, k, c, v[1001]; int main() { scanf("%d %d", &n, &k); for (int i = 2; i <= n; i++) { for (int j = 1; i*j <= n; j++) { if (!v[i*j]) c++; v[i*j] = 1; if (c == k) return !printf("%d\n", i*j); } } return 0; } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨,...
-
[BOJ] 1389 : 케빈 베이컨의 6단계 법칙
1389 : 케빈 베이컨의 6단계 법칙 풀이 돌리고 돌리고 돌리고~ 코드 #include <cstdio> #include <cstring> #include <vector> #include <queue> using namespace std; int n, m, dst[5005]; vector<int> gph[5005]; int bfs(int start) { int ret = 0; queue<int> que; memset(dst, 0, sizeof(dst)); que.push(start); while (!que.empty()) { int now = que.front(); que.pop(); ret += dst[now]; for (int nxt : gph[now]) { if (dst[nxt]) continue; dst[nxt] = dst[now] + 1; que.push(nxt); } } return ret; } int main()...
-
[BOJ] 15683 : 감시
15683 : 감시 풀이 삼성 인사 담당자님 보고 계신가요? 코드 #include <cstdio> #include <vector> #include <algorithm> using namespace std; const int dx[] = { 0,1,0,-1 }, dy[] = { 1,0,-1,0 }; const int R = 1, D = 2, L = 4, U = 8; vector<int> sight[6] = { {}, { R,D,L,U }, { L+R,U+D }, { R+D,D+L,L+U,U+R }, { R+D+L,D+L+U,L+U+R,U+R+D }, { R+D+L+U } }; int n, m; int a[10][10], b[10][10]; struct abc {...
-
[BOJ] 11899 : 괄호 끼워넣기
11899 : 괄호 끼워넣기 풀이 왠지 그냥 짜면 돌아갈 것 같았어 코드 #include <cstdio> #include <stack> using namespace std; char s[55]; stack<char> stk; int main() { scanf("%s", s); for (int i = 0; s[i]; i++) { if (!stk.empty() && stk.top() == '(' && s[i] == ')') stk.pop(); else stk.push(s[i]); } printf("%d", stk.size()); return 0; } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제...
-
[BOJ] 7469 : K번째 숫자
7469 : K번째 숫자 풀이 구간합 트리를 쫌 변형해보자. 구간합 트리는 [lft, rgt] 구간에 있는 원소들의 합을 관리한다. 여기서! 원소들의 합을 원소들로 바꿔서 관리해주자! 노드를 int: 구간합이 아니라 vector: 구간의 원소들로 관리하는 거다. 구간을 실체화 시켰다고 하면 될라나? 노드가 2*n개이므로 메모리는 O(n log n)으로 충분하다! 이제 각각의 벡터에는 [lft, rgt] 구간의 원소들이 들어있게 되었고, 이제 각각의 벡터를 정렬해주자. 그리고 쿼리가 들어오면, [s, e] 구간에서 x번째 수가 무엇인지 찾아낼 것이다. 그 수를 이분탐색으로 찾아줄 건데 이건...
-
[BOJ] 15973 : 두 박스
15973 : 두 박스 풀이 노가다를 해보자~ 사실 노가다 안 해도 됨 코드 #include <iostream> #include <string> using namespace std; int x[5], y[5]; string gogo() { if (x[0] == x[3] && y[0] == y[3] || x[1] == x[2] && y[0] == y[3] || x[0] == x[3] && y[1] == y[2] || x[1] == x[2] && y[1] == y[2]) return "POINT"; if (x[0] == x[3] && y[2] <= y[0] && y[0] <= y[3] || x[0] ==...
-
제2회 천하제일 코딩대회 예선 문제 풀이
대회 정보: https://www.acmicpc.net/contest/view/303 문제 목록: https://www.acmicpc.net/category/detail/1889 출제 및 검수 : bryan, chogahui05, exqt, jh05013, jwvg0425, pinch3773, wookje 문제 A B C D E 출제자 jwvg0425 wookje wookje wookje wookje 예선 출제에 수고해주신, 그리고 본선도 수고해주실 출제진 여러분들께 감사의 말씀 올립니다. A. 고장난 시계 풀이 15885 : 고장난 시계 흘러간 시간이 t시간일 때, 정상 시계는 t % 12를 가리키고 상대속도 x가 곱해진 시계는 t * x % 12를 가르킨다. 이를 이용해 수식을 유도하여 답을 구할 수...
-
[BOJ] 14971 : A Garden With Ponds
14971 : A Garden With Ponds 풀이 코드 개더러워… 코드 #include <cstdio> #include <algorithm> #define REP(k,l,r) for(int k=(l);k<(r);k++) using namespace std; int n, m, a[12][12]; int main() { while (1) { scanf("%d %d", &n ,&m); if (!n && !m) return 0; REP(i,1,n+1) REP(j,1,m+1) scanf("%d", &a[i][j]); int res = 0; REP(i,1,n+1) REP(j,1,m+1) { REP(x,i+2,n+1) REP(y,j+2,m+1) { int mo = 1e9; REP(k,i,x+1) mo = min(mo, min(a[k][j], a[k][y])); REP(k,j,y+1) mo = min(mo, min(a[i][k], a[x][k])); int mi = -1,...