From d232dc039ac6acd045628721ac3f9287fc22a5ed Mon Sep 17 00:00:00 2001 From: aqswa <69039161+aqswa@users.noreply.github.com> Date: Mon, 22 Nov 2021 00:35:45 +0900 Subject: [PATCH] =?UTF-8?q?[=ED=8A=B8=EB=A6=AC]11=EC=9B=94=2022=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2011번은 어디서 틀리는건지 모르겠습니다! 힌트나 이유 주시면 감사하겠습니다ㅜ --- 1121/14503.cpp | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1121/14675.cpp | 31 ++++++++++++++++++++++++ 1121/15681.cpp | 53 ++++++++++++++++++++++++++++++++++++++++ 1121/2011.cpp | 59 ++++++++++++++++++++++++++++++++++++++++++++ 1121/5639.cpp | 33 +++++++++++++++++++++++++ 5 files changed, 242 insertions(+) create mode 100644 1121/14503.cpp create mode 100644 1121/14675.cpp create mode 100644 1121/15681.cpp create mode 100644 1121/2011.cpp create mode 100644 1121/5639.cpp diff --git a/1121/14503.cpp b/1121/14503.cpp new file mode 100644 index 0000000..ea79343 --- /dev/null +++ b/1121/14503.cpp @@ -0,0 +1,66 @@ +// +// Created by LG on 2021-11-17. +// +#include +#include + +using namespace std; + +int r, c, dir, cnt; + +bool check(vector> board, int n, int m){ + int dx[4] = {-1, 0, 1,0}; + int dy[4] = {0, 1, 0, -1}; //왼쪽, 아래, 오른쪽, 위 + + for(int i=3; i>=0; i--){ + r += dx[(dir+i)%4]; + c += dy[(dir+i)%4]; + if(r >= 0 && r < n && c >=0 && c < m && board[r][c]==0){ + dir = (dir+i)%4; + return true; + } + r -= dx[(dir+i)%4]; + c -= dy[(dir+i)%4]; + } + + r += dx[(dir+2)%4]; + c += dy[(dir+2)%4]; + if(r < 0 || r >=n || c < 0 || c >=m || board[r][c] == 1){ + r -= dx[(dir+2)%4]; + c -= dy[(dir+2)%4]; + return false; + } + else + check(board, n, m); + + return true; + +} + +int clean(vector> &board, int n, int m){ + if(board[r][c] == 0){ + board[r][c] = 2; + cnt++; + } + + bool flag = check(board, n, m); + if(flag) + clean(board, n, m); + else + return cnt; + + return cnt; +} + +int main(){ + int n, m; + cin >> n >> m >> r >> c >> dir; + vector> board(n, vector(m, 0)); + for(int i=0; i> board[i][j]; + } + + cout << clean(board, n, m); + +} diff --git a/1121/14675.cpp b/1121/14675.cpp new file mode 100644 index 0000000..2f3569d --- /dev/null +++ b/1121/14675.cpp @@ -0,0 +1,31 @@ +// +// Created by LG on 2021-11-20. +// +#include +#include + +using namespace std; + +int main(){ + ios_base :: sync_with_stdio(false); + cin.tie(NULL); + cout.tie(NULL); + int n, a, b, q, t, k; + cin >> n; + vector tree(n+1); + for(int i=0; i> a >> b; + tree[a]++; + tree[b]++; + } + + cin >> q; + while(q--){ + cin >> t >> k; + if(t==1 && tree[k] == 1) + cout << "no\n"; + else + cout << "yes\n"; + } + +} diff --git a/1121/15681.cpp b/1121/15681.cpp new file mode 100644 index 0000000..2274cb2 --- /dev/null +++ b/1121/15681.cpp @@ -0,0 +1,53 @@ +// +// Created by LG on 2021-11-20. +// +#include +#include + +using namespace std; + +vector> graph; +vector> tree; +vector sizee; + +void makeTree(int currentNode, int parent){ + for(int i=0; i> n >> r >> q; + graph.assign(n+1, vector(0)); + tree.assign(n+1, vector(0)); + sizee.assign(n+1, 0); + + n--; + while(n--){ + cin >> u >> v; + graph[u].push_back(v); + graph[v].push_back(u); + } + + makeTree(r, -1); + countSubtreeNodes(r); + + while(q--){ + cin >> u; + cout << sizee[u] << '\n'; + } + + return 0; +} diff --git a/1121/2011.cpp b/1121/2011.cpp new file mode 100644 index 0000000..f9e537a --- /dev/null +++ b/1121/2011.cpp @@ -0,0 +1,59 @@ +// +// Created by LG on 2021-11-17. +// +#include +#include + +using namespace std; + +vector pw; +long long dp[5001]; +int len; + +int find(){ + + if(pw[0] == 0) + return 0; + dp[0] = 1; + + if(pw[1] == 0) { + if (pw[0] < 3) + dp[1] = 1; + } + else{ + if(pw[0] == 1 || (pw[0] == 2 && pw[1] < 7)) + dp[1] = 2; + else + dp[1] = 1; + } + + for(int i=2; i> s; + len = s.length(); + for(int i=0; i +#include +#include + +using namespace std; + +map> tree; +vector preorder; + +void divide(int left, int right){ + if(left > right) + return; + int root = preorder[left]; + int next = left+1; + while(preorder[next] < root && next < preorder.size()) + next++; + divide(left+1, next-1); + divide(next, right); + cout << root << '\n'; +} +int main(){ + int root, node; + cin >> root; + preorder.push_back(root); + while(cin >> node){ + preorder.push_back(node); + } + divide(0, preorder.size()-1); + return 0; +}