C++
-
[BaekJoon] 17298๋ฒ : ์คํฐ์SW Test/BaekJoon 2021. 7. 19. 22:13
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ์ฒ์ ๋ฌธ์ ๋ฅผ ๋ณด๋ฉด ๋ ์ค๋ฅด๋ ํ์ด๋ O(n2)๋ฐฉ๋ฒ์ผ๋ก 2์ค for๋ฌธ์ผ๋ก ์ ์ฒด ํ์ํ๋ฉด์ ๋น๊ตํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ํ์ง๋ง, ์ด ๋ฌธ์ ๋ ๊ฒฝ์ฐ์ ์๊ฐ 1,000,000์ด๊ธฐ ๋๋ฌธ์ ๋น์ฐํ ์๊ฐ์ด๊ณผ๊ฐ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํด์ผํฉ๋๋ค. stack์ ํ์ฉํ๋ฉด O(n)์ผ๋ก ํ์ด๊ฐ ๊ฐ๋ฅํฉ๋๋ค. #include #include #include using namespace std; int main() { // your code goes here int num; cin>>num; vector vec; for(int i=0;i>n; vec.push_back(n); } stack s; for(int i=vec.size()-1;i>0;i--){ s.push(vec[i]); } int ..
-
[BaekJoon] 1697๋ฒ : ์จ๋ฐ๊ผญ์งSW Test/BaekJoon 2021. 4. 23. 01:52
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ํ์ด BFS๋ฅผ ํ์ฉํ๋ ๋ฌธ์ ์ธ๋ฐ 2์ฐจ์์ด ์๋ 1์ฐจ์์ผ๋ก ์์ฑํ๋ฉด ๋ฉ๋๋ค. #include #include using namespace std; int arr[100005]; int main(){ int n,k; cin>>n>>k; queue q; arr[n] = 1; q.push(n); while(!q.empty()){ int cur = q.front(); if(cur == k) break; q.pop(); if(cur>0 && arr[cur-1] == 0){ q.push(cur-1); arr[cur-1] = arr[cur]+1; } if(cur
-
[BaekJoon] 4179๋ฒ : ๋ถ!SW Test/BaekJoon 2021. 4. 23. 01:43
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด BFS ํ์ฉํ๋ ๋ฌธ์ ๋ก ๋ถ์ ์์์ ์์ BFS๋ฅผ ๋๋ฆฐ ํ ์งํ์ด๋ฅผ BFS๋ฅผ ์งํํ์ฌ ๋ถ์ด ๋จผ์ ํ์ฐ๋ ๊ฒฝ์ฐ ์งํํ ์ ์๋๋ก ํฉ๋๋ค. ์ฃผ์ํด์ผํ ์ ์ 2๊ฐ์ง๋ก ๋ถ์ด ์ฌ๋ฌ ๊ฐ ์กด์ฌํ ์ ์๋ค๋ ์ ๊ณผ, ๋ถ์ด ์์ ์๋ ์๋ค๋ ์ ์ ๋๋ค. ์ฆ, ๋ถ์ด ์ฌ๋ฌ ๊ฐ ์กด์ฌ๋ BFS๋ฅผ ๋๊ฐ์ด ํด๋ ๊ด์ฐฎ์ง๋ง, ๋ถ์ด ์๋ ๊ฒฝ์ฐ์๋ ๋ถ์ด ์ด๋ํ ๊ฑฐ๋ฆฌ ๋ฐฐ์ด์ ์ด๊ธฐํ์ธ ์ํ ๊ทธ๋๋ ์์ต๋๋ค. #include #include #include #include using namespace std; int n,m; int arr[1000][1000]; int fdist[1000][1000]; int jdist[1000][1000]; int dir[4][2] = {{0,1},{1,0..
-
[BaekJoon] 7576๋ฒ : ํ ๋งํSW Test/BaekJoon 2021. 4. 23. 01:38
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ์์์ ์ด ์ฌ๋ฌ ๊ฐ ์๋ BFS ๋ฌธ์ ๋ก BFS์ ๋ํ ํน์ง์ด ์ ๋๋ก ์์ด์ผ ํฉ๋๋ค. BFS๋ ํ์ ์ฒ์ ์์์ ์ ํ ๊ฐ ๋ด์๋ค๋ฉด, ์ด ๋ฌธ์ ๋ ์์์ ์ด ์ฌ๋ฌ ๊ฐ ์์ผ๋ฉด ์ฌ๋ฌ ๊ฐ๋ฅผ ํ๋์ ํ์ ๋ด๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ํ์์ front์ ํด๋น๋๋ ์์์ ์์ BFS๋ฅผ ์งํํ๊ฒ ๋๊ณ ํน์ ์์ญ์ ์ฌ๋ฌ ์์์ ์ค ์ฒ์ ๋ฐฉ๋ฌธํ ๋๊ฐ ์ต๋จ ๊ฑฐ๋ฆฌ์ ๋๋ค. #include #include #include using namespace std; int n,m; int arr[1000][1000]; int dist[1000][1000]; int dir[4][2] = {{0,1},{1,0},{0,-1},{-1,0}}; bool inside(int y, int x){ return..
-
[BaekJoon] 2178๋ฒ : ๋ฏธ๋ก ํ์SW Test/BaekJoon 2021. 4. 23. 01:34
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด BFS ํน์ง ์ค ํ๋๋ ํ์ํ๋ ์์ญ์ ์ต์ํ์ ๊ฑฐ๋ฆฌ๋ก ํ์ํ๋ค๋ ํน์ง์ด ์์ต๋๋ค. ๋ฐ๋ผ์ BFS ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ํ๋ ๊ณต๊ฐ์ ์ฒ์์ผ๋ก ํ์ํ๋ ์๊ฐ์ด ์ต๋จ๊ฑฐ๋ฆฌ ์ ๋๋ค. #include #include #include #include #include using namespace std; int n,m; int arr[100][100]; int dist[100][100]; int dir[4][2] = {{0,1},{1,0},{0,-1},{-1,0}}; bool inside(int y,int x){ return 0m; for(int i=0;i>s; for(int j=0;j
-
[BaekJoon] 1926๋ฒ : ๊ทธ๋ฆผSW Test/BaekJoon 2021. 4. 23. 01:26
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด BFS๋ฅผ ํ์ฉํ๋ ๋ฌธ์ ๋ก ๋ฐฐ์ด์ ๋ชจ๋ ์ง์ญ์์ BFS๋ฅผ ์คํํฉ๋๋ค. ์ฒ์ BFS์์ ์คํํ์ฌ ํ์ํ์ง ์์ ์ง์ญ์์ ๋ค์ BFS๋ฅผ ์คํํ์ฌ ๊ทธ๋ฆผ์ ๊ฐฏ์๋ฅผ ํ์ ํฉ๋๋ค. ๊ทธ๋ฆผ์ ์ต๋ ํฌ๊ธฐ๋ BFS๋ฅผ ์คํํ๋ฉด์ ํ์์ popํ ๊ฐฏ์๋ฅผ ์ธ์ด ๋น๊ตํฉ๋๋ค. #include #include #include using namespace std; int n,m; int arr[500][500]; bool visit[500][500]; int dir[4][2] = {{0,1},{1,0},{0,-1},{-1,0}}; bool inside(int y,int x){ return 0m; for(int i=0;iarr[i][j]; } } int cnt = 0; int ans..
-
[BaekJoon] 11724๋ฒ : ์ฐ๊ฒฐSW Test/BaekJoon 2021. 4. 23. 01:21
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ๊ทธ๋ํ๋ฅผ ๊ตฌํํ ์ ์๋์ง ํ์ธํ๋ ๋ฌธ์ ๋ก ์ธ์ ํ๋ ฌ์ด๋ ์ธ์ ๋ฆฌ์คํธ๋ฅผ ํตํด ํํํ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๊ฐ์ ๊ฒฝ์ฐ๋ ์ธ์ ํ๋ ฌ๋ณด๋ค ์ธ์ ๋ฆฌ์คํธ๋ก ํ ๊ฒฝ์ฐ ์๊ฐ๋ณต์ก๋๊ฐ ๋ฎ์ต๋๋ค. O(N2) >n>>m; bool visit[1005]; fill(visit, visit+1005, false); for(int i=0;i>a>>b; vec[a].push_back(b); vec[b].push_back(a); }..
-
[BaekJoon] 10816๋ฒ : ์ซ์์นด๋ 2SW Test/BaekJoon 2021. 4. 21. 03:53
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ์ด๋ถํ์์์ ์ฐพ์์ผ ํ target ์์์ ์ธ๋ฑ์ค ์ค ๊ฐ์ฅ ์์ ๊ฐ๊ณผ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ฐพ์ ๋นผ๋ ๊ฐ์ด ๊ฐ์์ ๋๋ค. ์ง์ ๊ตฌํํ ์ ์์ง๋ง, ํท๊ฐ๋ฆด ์ํ์ด ์๊ธฐ ๋๋ฌธ์ STL ์ค upper_bound์ lower_bound ๊ฐ์ ์ธ ์ ์์ต๋๋ค. #include #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); long long arr[100000]; int num; cin>>num; for(int i=0;i>arr[i]; } sort(arr, arr+num); int n; cin>>n; for(int i=0;i>ans; bool check = false; lo..