-
[BOJ] 1110 : 더하기 사이클
1110 : 더하기 사이클 풀이 do while 처음 써봤다 ㅋㅋ 코드 #include <stdio.h> int main() { int n, m, c = 0; scanf("%d", &n); m = n; do { c++, m = (m % 10) * 10 + (m / 10 + m % 10) % 10; } while (n != m); printf("%d", c); return 0; } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조,...
-
[BOJ] 2262 : 토너먼트 만들기
2262 : 토너먼트 만들기 풀이 큰 수가 많이 자주 올라갈 수록 합은 크게 나온다. 그렇다면 가장 큰 수 부터 묶어주면 된다! 코드 #include <stdio.h> int max(int a, int b) { return a > b ? a : b; } int n, i, j, a[257], ans; int main() { scanf("%d", &n); for (i = 1; i <= n; i++) scanf("%d", &a[i]); for (i = n; i > 1; i--) { for (j = 1; j <=...
-
[codeforces] #403 div1 A (div2 C)
#403 div1 A. Andryusha and Colored Balloons 풀이 이전 노드의 색, 이번 노드의 색에 대한 정보를 가지고 dfs를 돌리면 해결할 수 있다. 추가로, (가장 큰 차수)+1만 가지고 최소로 색칠할 수 있다. 코드 #include <bits/stdc++.h> using namespace std; const int n_ = 2e5 + 10; int n, ans, col[n_]; vector<int> gph[n_]; void dfs(int prv, int cur) { int i = 1; for (auto nxt : gph[cur]) { if (col[nxt]) continue; while (col[prv] == i || col[cur]...
-
[codeforces] #403 div2 B
#403 div2 B. The Meeting Place Cannot Be Changed 풀이 코포 문제는 처음 풀이한다! (두근두근) 이분 탐색을 돌리면 쉽게 해결할 수 있다. 만나는 시간을 mid로 두면, n*log(최대차이)이므로 제한시간에 맞게 돌릴 수 있다. 각각의 좌표 x[i]를 돌면서 mid에 갈 수 있는 max_left, min_right를 구한다. max_left <= min_right면 mid에 만날 수 있다. 왜 그런지는 그림판에 대충 선 몇 개 그려보면 직관적으로 이해 될 것이다. (아마?) AC 받긴 했는데 저렇게 짜도 실수 오차 안 나는지는 모르겠다 (…) 코드...
-
[BOJ] 1080 : 행렬
1080 : 행렬 풀이 그냥 그리디하게 (i,j)가 다르면 바꿔주면 된다! 코드 #include <stdio.h> int main() { int i, j, x, y, ans = 0, n, m; char a[51][51], b[51][51]; scanf("%d %d", &n, &m); for (i = 0; i < n; i++) scanf("%s", a[i]); for (i = 0; i < n; i++) scanf("%s", b[i]); for (i = 0; i < n - 2; i++) { for (j = 0; j < m - 2; j++) {...