-
[BOJ] 1764 : 듣보잡
1764 : 듣보잡 풀이 stl로 떡칠해보자!! 코드 #include <iostream> #include <algorithm> #include <string> #include <vector> #include <set> using namespace std; int n, m; string t; set<string> s; vector<string> v; int main() { cin.tie(0); ios_base::sync_with_stdio(0); cin >> n >> m; while (n--) cin >> t, s.insert(t); while (m--) cin >> t, s.count(t) ? v.emplace_back(t) : [](){}(); sort(v.begin(), v.end()); cout << v.size() << "\n"; for (auto it : v) cout << it << "\n"; return 0; }...
-
[BOJ] 1991 : 트리 순회
1991 : 트리 순회 풀이 아 퇴사하고싶다 코드 #include <stdio.h> #define p(c) putchar(c); int n, i; char a, b, c, t[99][2]; void f(int x) { if (i == 0) p(x); if (t[x][0] != '.') f(t[x][0]); if (i == 1) p(x); if (t[x][1] != '.') f(t[x][1]); if (i == 2) p(x); } int main() { scanf("%d", &n); for (i = 0; i < n; i++) { scanf(" %c %c %c", &a, &b, &c); t[a][0] = b,...
-
[BOJ] 2941 : 크로아티아 알파벳
2941 : 크로아티아 알파벳 풀이 쿵짝쿵짝 쿵짜라 코드 #include <stdio.h> #include <string.h> int i, c; char s[111]; int main() { scanf("%s", s); while (i < strlen(s)) { if (s[i] == 'c' && (s[i+1] == '=' || s[i+1] == '-')) i++; else if (s[i] == 'd') { if (s[i+1] == '-') i++; else if (s[i+1] == 'z' && s[i+2] == '=') i+=2; } else if ((s[i] == 'l' || s[i] == 'n') && s[i+1] == 'j')...
-
[BOJ] 2775 : 부녀회장이 될테야
2775 : 부녀회장이 될테야 풀이 점화식을 오지게 세워보자~ d[i][j] = i층 j호에 사는 사람의 수 d[i][j] = d[i-1][j] + d[i][j-1] 코드 #include <stdio.h> int t, n, k, d[15][15]; int main() { for (int i = 1; i < 15; i++) d[0][i] = i; for (int i = 1; i < 15; i++) for (int j = 1; j < 15; j++) d[i][j] = d[i-1][j] + d[i][j-1]; scanf("%d", &t); while (t--) { scanf("%d %d", &k, &n);...
-
[BOJ] 2042 : 구간 합 구하기
2042 : 구간 합 구하기 풀이 세그트리를 짜보자~ 코드 #include <iostream> using namespace std; typedef long long ll; const int n_ = 1048576 + 1; int n, m, k, arr[n_]; ll tree[n_ * 2]; ll init(int now, int lft, int rgt) { if (lft == rgt) return tree[now] = arr[lft]; return tree[now] = init(now * 2, lft, (lft + rgt) / 2) + init(now * 2 + 1, (lft + rgt) / 2 + 1,...
-
[BOJ] 2953 : 나는 요리사다
2953 : 나는 요리사다 풀이 아 출근하기 싫다 코드 i = 5, j, a, s, mn, mx; main() { while (i--) { for (j = 0, s = 0; j < 4; j++) scanf("%d", &a), s += a; if (mx < s) mn = 5 - i, mx = s; } printf("%d %d", mn, mx); } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제,...
-
[BOJ] 1966 : 프린터 큐
1966 : 프린터 큐 풀이 프린터 터져욧!! 코드 #include </bits/stdc++.h> using namespace std; int main() { int tc; scanf("%d", &tc); while (tc--) { int n, m, cnt = 1; queue<pair<int, int> > qu; priority_queue<int> pq; scanf("%d %d", &n, &m); for (int i = 0, a; i < n; i++) { scanf("%d", &a); qu.push({ a,i }); pq.push(a); } while (!pq.empty()) { auto n1 = qu.front(); int n2 = pq.top(); if (n1.first == n2) { if (n1.second...
-
[BOJ] 2309 : 일곱 난쟁이
2309 : 일곱 난쟁이 풀이 돌려돌려~ 코드 #include <stdio.h> #include <algorithm> int a[10]; int main() { for (int i = 0; i < 9; i++) scanf("%d", &a[i]); std::sort(a, a + 9); for (int i = 0; i < (1 << 9); i++) { int cnt = 0, sum = 0; for (int j = 0; j < 9; j++) if ((1 << j) & i) cnt++, sum += a[j]; if (cnt != 7 || sum...
-
[BOJ] 11722 : 가장 긴 감소하는 부분 수열
11722 : 가장 긴 감소하는 부분 수열 풀이 죽을 것 같아도 미칠 것 같아도 하늘만 뚫어지게 보며 버텼죠 그대를 본다면 눈물을 본다면 분명 난 주저앉고 말테니 코드 #include <stdio.h> #include <algorithm> using namespace std; int n, tmp, len, a[1001], d[1001]; int main() { scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &tmp); auto ret = lower_bound(a, a + i, tmp, [](const int &i, const int &j) { return i >...
-
[BOJ] 6603 : 로또
6603 : 로또 풀이 그댈 그린 밤들이 내게 욕심이란 걸 맘 아프게 알아 나를 택한 운명이 행여 그댈 맴돌아 붙잡지 못하게 이제 그대 곁에서 떠나가 코드 #include <stdio.h> int k, s[51], a[7]; void dfs(int len, int cnt) { if (cnt == 6) { for (int i = 1; i <= 6; i++) printf("%d ", a[i]); puts(""); return; } if (len >= k) return; a[cnt + 1] = s[len + 1]; dfs(len + 1, cnt +...