Baekjoon
-
[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..
-
[BaekJoon] 1920๋ฒ : ์ ์ฐพ๊ธฐSW Test/BaekJoon 2021. 4. 21. 03:43
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ์ด ๋ฌธ์ ๋ ๊ฐ๋จํ๊ฒ map, set STL์ ์ฌ์ฉํด์ ํ๋ฉด ์๊ฐ์ด๊ณผ๊ฐ ๋ฉ๋๋ค. ์ด์งํ์ ํธ๋ฆฌ๋ก ์ฝ์ , ์ ๋ ฌ ๊ณผ์ ์์ ์๊ฐ์ด ๋ ๊ฑธ๋ ค์ ์ด์งํ์๊ณผ ์๊ฐ๋ณต์ก๋๋ O(logN)์ผ๋ก ๊ฐ์ง๋ง ๋๋ฆฝ๋๋ค. ์ด์งํ์ ์ฝ๋๋ฅผ ์๋์ ๊ฐ์ด ์ง์ ๊ตฌํํด๋ ๋์ง๋ง, STL์ binary_search ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณด๋ค ํธ๋ฆฌํฉ๋๋ค. c, c++ stream ๋๊ธฐํ ๋๋ ์ฝ๋์ ๋ฒํผ ๋น์์ฃผ๋ ์ฝ๋๋ ์์ด์ผ ์๊ฐ์ด๊ณผ๊ฐ ๋ํ๋์ง ์์ต๋๋ค. #include #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); int arr[100005]; int num; cin>>num; for(int i..
-
[BaekJoon] 12865๋ฒ : ํ๋ฒํ ๋ฐฐ๋ญSW Test/BaekJoon 2021. 4. 20. 02:07
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ์ด ๋ฌธ์ ๋ฅผ ๊ทธ๋ฆฌ๋๋ผ๊ณ ์คํดํ์ฌ ์ค๋ ๋๋น ๊ฐ์น๊ฐ ๊ฐ์ฅ ํฐ ๊ฒฝ์ฐ๋ฅผ ๋ฃ๋๋ค๊ณ ํ ๊ฒฝ์ฐ ์์ธ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๋๊ฐ ์๋ DP๋ก ํด๊ฒฐํด์ผ ํ๋ฉด DP๋ก ์ ๋ช ํ 0-1 knapsack ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. D[i][w] : ํ์ฌ w ๋ฌด๊ฒ๊ฐ ๋จ์ ์ํ์์ i๋ฒ์งธ item์ ํ๊น์ง ์ต๋ ๊ฐ์น if w[i] < w, D[i][w] = max(D[i-1][w-w[i]]+v[i], D[i-1][w]) : i๋ฒ์งธ Item์ ๋ด์ ์ ์๋ค๋ฉด, i-1๋ฒ์งธ๊น์ง Item์ ๋ด์ผ๋ฉด์ ํ์ฌ ๋ด์ ์ ์๋ ๋ฌด๊ฒ๊ฐ w-w[i]๋งํผ ๋จ์ ๊ฒฝ์ ์ ์ต๋ ๊ฐ์นํฉ์ i๋ฒ์งธ Item์ ๊ฐ์น๋ฅผ ํฉํ ๊ฐ๊ณผ D[i-1][w] ๊ฐ ๋น๊ต else, D[i][w] = D[i-1][w] #include #..
-
[BaekJoon] 2217๋ฒ : ๋กํSW Test/BaekJoon 2021. 4. 20. 01:59
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋กํ 5๊ฐ ์ค 3๊ฐ๋ก๋ง ๊ฐ์ง๊ณ ์ต๋ ์ค๋์ ๊ตฌํ๋ ๋ฌธ์ ๋ผ๊ณ ํ๋ฉด ์ค๋์ด ๋ฌด๊ฑฐ์ด ์์ผ๋ก ์ ๋ ฌ ํ ์ต๋๋ก๋ถํฐ 3๊ฐ์ ๋กํ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๊ณ 3๊ฐ ์ค ๊ฐ์ฅ ์์ ๊ฐ์ ๊ณฑํ๊ธฐ 3์ ํด์ฃผ๋ฉด ๋ฉ๋๋ค. ์ฆ, n๊ฐ์ ๋กํ๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ๋ฉด, n๋ฒ์งธ๋ก ํฐ ๊ฐ์ ๊ณฑํ๊ธฐ n์ ํด์ค์ผ ํฉ๋๋ค. #include #include using namespace std; int main(){ int num; cin>>num; int arr[100000]; for(int i=0;i>arr[i]; } sort(arr, arr+num); int result = 0; for(int i=0;i
-
[BaekJoon] 1931๋ฒ : ํ์์ค ๋ฐฐ์ SW Test/BaekJoon 2021. 4. 20. 01:51
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ์ ์ธ ๋ฌธ์ ์ ๋๋ค. ๊ฐ์ฅ ๋ง์ด ํ์๋ฅผ ํ๊ธฐ ์ํด์๋ ํ์๊ฐ ๊ฐ์ฅ ๋จผ์ ๋๋๋ ํ์์์ผ๋ก ์ ๋ ฌ ํ ๋์ผ ์ ๋จผ์ ์์ํ๋ ๊ฒฝ์ฐ๋ฅผ ํ์ํ๋ฉด ๋ฉ๋๋ค. #include #include #include #include using namespace std; bool cmp(pair& p1, pair& p2){ if(p1.second == p2.second){ return p1.firstnum; for(int i=0;i>a>>b; vec.push_back({a,b}); } sort(vec.begin(), vec.end(), cmp); int cnt = 1; int e = vec[0].second; for(int i=1;i=e){ e = ve..