-
[BOJ] 2783 : 삼각 김밥
2783 : 삼각 김밥 풀이 그냥 짜면 된다! 코드 #include <stdio.h> double a, b, n, f; int main() { scanf("%lf %lf %lf", &a, &b, &n); f = a / b; while (n--) { scanf("%lf %lf", &a, &b); f = f < a / b ? f : a / b; } printf("%lf", f * 1000); return 0; } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘,...
-
[BOJ] 2459 : 철사 자르기
2459 : 철사 자르기 풀이 문제를 끝까지 안 읽어서 직선의 위치를 직접 정해야 하는 줄 알았는데 알고보니 직선의 위치를 문제에서 주는 거였다. i번째 점과 i+1번째 점의 좌표를 이용해서 어찌저찌 잘 짜면 된다. 코드 #include <bits/stdc++.h> #define fst first #define snd second using namespace std; int n, k, l; pair<int, int> p[100002]; int main() { scanf("%d %d", &n, &k); for (int i = 0; i < k; i++) scanf("%d %d", &p[i].fst, &p[i].snd); p[k++] = { 1,1...
-
[BOJ] 2458 : 키 순서
2458 : 키 순서 풀이 모든 노드에서 dfs를 정방향으로 한 번, 역방향으로 한 번 돌려주자! 정방향은 나보다 큰 친구들, 역방향은 나보다 큰 친구들의 개수(?)이다. 이 둘을 합한 값이 나를 제외한 n-1명과 같은지 알아보자! 코드 #include <bits/stdc++.h> using namespace std; int n, m, t, vst[2][501]; vector<int> gph[2][501]; int dfs(int now) { int ret = 1; vst[t][now] = 1; for (int nxt : gph[t][now]) if (!vst[t][nxt]) ret += dfs(nxt); return ret; } int main() { int u,...
-
[BOJ] 2457 : 공주님의 정원
2457 : 공주님의 정원 풀이 회의실 배정 문제에 날짜가 추가된 버전이다. 정렬해서 그리디를 돌리면 된다. 날짜를 처리하기가 조금 까다롭다. 하지만 까다로운 건 싫다. 그렇다면 month에 100을 곱해보자. 기적이 일어난다. 코드 #include <stdio.h> #include <algorithm> #define fst first #define snd second using namespace std; int n; pair<int, int> f[100001]; int main() { scanf("%d", &n); for (int i = 0; i < n; i++) { int a, b, c, d; scanf("%d %d %d %d", &a, &b, &c,...
-
[BOJ] 2456 : 나는 학급회장이다
2456 : 나는 학급회장이다 풀이 완전 쌩노가다 문제! 점수 합이 같은 경우에는 높은 점수의 개수(?)를 비교해야 한다. 점수의 개수를 카운팅하지 말고, 점수를 제곱해서 더해주자! 점수의 개수에 따라 제곱합 값이 달라지기 때문에 점수의 개수가 다르다면 unique함이 보장된다. 잔재주를 조금 부리면 코드 길이를 엄청 줄일 수 있다. 코드 #include <stdio.h> #include <algorithm> #define fst first #define snd second using namespace std; int n, f; pair<int, int> p[3]; int main() { scanf("%d", &n); for (int i = 0;...