목록PS (94)
정화 코딩
https://www.acmicpc.net/problem/13549 #include #include #include using namespace std;bool vst[300001];int dx[] = {1, -1};int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, k; cin >> n >> k; queue> q; int cur, cnt; bool fin = false; q.emplace(n, 0); vst[n + 100000] = true; while (!fin) { cur = q.front().first; cnt = q.front()...
https://www.acmicpc.net/problem/1629 #include using namespace std;long long divpow(long long a, long long b, long long c) { if (b == 1) return a % c; long long tmp = divpow(a, b / 2, c) % c; if (b % 2 == 0) return (tmp * tmp) % c; else return (((tmp * tmp) % c) * (a % c)) % c;}int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); long long a, b, c; cin >>..
https://www.acmicpc.net/problem/1865 #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int tc; cin >> tc; while (tc--) { int n, m, w; cin >> n >> m >> w; vector> edge; vector dst(n + 1, 100000000); int s, e, t; dst[1] = 0; for (int i = 0; i > s >> e >> t; edge.pus..
https://www.acmicpc.net/problem/9328 #include #include #include using namespace std;int dx[] = {1, -1, 0, 0};int dy[] = {0, 0, 1, -1};int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int tc; cin >> tc; while (tc--) { int h, w; cin >> h >> w; vector m(h); vector> chk(h, vector(w, false)); vector open(26, false); queue>..
솔브닥 class 4+ 풀고 있었는데 거기에 피보나치 수 6 문제가 있길래 이참에 피보나치 수 문제를 쭉 풀어볼까 한다. 피보나치 수 (백준 2747번)https://www.acmicpc.net/problem/2747 #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; vector fib(n + 1); fib[0] = 0; fib[1] = 1; for (int i = 2; i 바텀업 dp로 풀었다. (AC) 피보나치 수 2 (백준 2748번)https://www.acmicpc.net/..
https://www.acmicpc.net/problem/17404 #include #include using namespace std;int MAXV = 1000 * 1000 + 1;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; vector> rgb(n + 1, vector(3)); for (int i = 1; i > rgb[i][j]; } } vector> dp(n + 1, vector(3)); int ans = MAXV; // 첫번째 집이 각각 r, g, b일 때로 나눠서 dp 채우기 for (int first = 0;..
https://www.acmicpc.net/problem/10942 #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m; cin >> n; vector a(n); vector> dp(n, vector(n, 0)); for (int i = 0; i > a[i]; dp[i][i] = 1; if (i == 0) continue; if (a[i] == a[i - 1]) dp[i - 1][i] = 1; } for (int i = 0; i > m; while (m--)..
https://www.acmicpc.net/problem/2239 #include #include using namespace std;vector> s;vector> emp;int n;bool fin = false;bool chk(int idxi, int idxj, int num) { for (int i = 0; i >(9, vector(9)); emp = vector>(); for (int i = 0; i > str; for (int j = 0; j 스도쿠 판을 왼쪽 위부터 차례대로 읽어가며 빈칸에 1부터 9까지의 수를 넣어가면서 가능한 경우를 만나는 즉시 종료하고 출력하도록 했다. 백트래킹 문제이고, 탐색하는 함수 dfs와 가능한 경우인지 체크하는 함수 chk를 만들었다...