WookjeBlog
    • 블로그
    • 소개
    • 태그
    • 수업/강의
    • 라이브러리

    Wookje blog

    알고리즘 블로그였던 것

    Featured Posts
    • [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 naive

      wookje.kwon's profile image

      wookje.kwon

      2017-03-17 10:23

    • [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 <=...

      boj greedy

      wookje.kwon's profile image

      wookje.kwon

      2017-03-17 10:02

    • [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]...

      boj dfs

      wookje.kwon's profile image

      wookje.kwon

      2017-03-15 15:00

    • [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 binary-search

      wookje.kwon's profile image

      wookje.kwon

      2017-03-15 09:19

    • [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++) {...

      boj greedy

      wookje.kwon's profile image

      wookje.kwon

      2017-03-14 16:13

    • [BOJ] 1922 : 네트워크 연결

      1922 : 네트워크 연결 풀이 계절이 지나가는 하늘에는 가을로 가득 차 있습니다. 코드 #include <stdio.h> #include <vector> #include <algorithm> using namespace std; const int n_ = 1e3 + 1; const int m_ = 1e5 + 1; struct node { int u, v, w; } edg[m_]; int p[n_]; inline int find(int u) { if (u == p[u]) return u; return p[u] = find(p[u]); } void merge(int u, int v) { u = find(u), v = find(v);...

      boj minimum-spanning-tree union-find

      wookje.kwon's profile image

      wookje.kwon

      2017-03-14 15:51

    • [BOJ] 1937 : 욕심쟁이 판다

      1937 : 욕심쟁이 판다 풀이 dfs를 돌리자! 코드 #include <stdio.h> const int dx[] = { 0,0,-1,1 }; const int dy[] = { -1,1,0,0 }; const int n_ = 500 + 5; int n, a[n_][n_], dp[n_][n_]; inline int max(int a, int b) { return a > b ? a : b; } int dfs(int x, int y) { if (dp[x][y]) return dp[x][y]; dp[x][y] = 1; for (int i = 0; i < 4; i++) { int...

      boj dfs dynamic-programming

      wookje.kwon's profile image

      wookje.kwon

      2017-03-14 12:00

    • [BOJ] 2839 : 설탕배달

      2839 : 설탕배달 풀이 dp[i] = min(dp[i-3], dp[i-5]) + 1로 두고 풀면 된다. n이 5천개니까 max를 대충 1600?쯤 잡으면 3으로 꽉채워도 최대 해보다 작고 max를 5천개 더해도 int 안쪽이니까 max를 2222로 잡았다. 코드 #include <stdio.h> int min(int a, int b) { return a < b ? a : b; } int main() { int n, i, a[5001]; scanf("%d", &n); for (i = 0; i <= n; i++) a[i] = 2222; a[3] = a[5] = 1;...

      boj dynamic-programming

      wookje.kwon's profile image

      wookje.kwon

      2017-03-14 09:54

    • [BOJ] 1261 : 알고스팟

      1261 : 알고스팟 풀이 다익스트라를 변형해보자 dp랑 적당히 섞어보자 코드 #include <cstdio> #include <queue> using namespace std; const int dx[] = { 0,0,-1,1 }, dy[] = { -1,1,0,0 }; const int n_ = 100 + 5; struct edg { int x, y, w; bool operator <(edg A)const { return w > A.w; } }; int main() { int n, m, chk[n_][n_] = {}; char a[n_][n_]; priority_queue<edg> pq; scanf("%d %d\n", &m, &n); for (int i =...

      boj dijkstra

      wookje.kwon's profile image

      wookje.kwon

      2017-03-14 09:11

    • [BOJ] 1197 : 최소 스패닝 트리

      1197 : 최소 스패닝 트리 풀이 크루스칼을 하자. 코드 #include <stdio.h> #include <vector> #include <algorithm> using namespace std; const int n_ = 1e4 + 1; const int m_ = 1e5 + 1; struct node { int u, v, c; bool operator <(node A)const { return c < A.c; } } edg[m_]; int n, m; int mom[n_]; int find(int u) { if (u == mom[u]) return u; return mom[u] = find(mom[u]); } void merge(int u, int...

      boj minimum-spanning-tree union-find

      wookje.kwon's profile image

      wookje.kwon

      2017-03-13 19:06

    • Previous Page
    • 38
    • 39
    • 40
    • 41
    • 42
    • Next Page
    • github
    • facebook
    • rss

    Copyright © Wookje Kwon. All rights reserved.