Algorithm
-
[BaekJoon] 2447๋ฒ ๋ณ ์ฐ๊ธฐ-10SW Test/BaekJoon 2020. 12. 8. 21:58
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด #include #include using namespace std; vector vec(3000,""); void print(int k,int num,bool flag){ if(num == 1){ if(flag){ vec[k]+="*"; } else{ vec[k]+=" "; } } else{ if(flag){ for(int i=0;i
-
[BaekJoon] 11729๋ฒ : ํ๋ ธ์ด์ ํSW Test/BaekJoon 2020. 12. 7. 23:18
์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ์ฒ์์๋ cin, cout์ผ๋ก ํ์ด๋ฅผ ํ์์ผ๋ ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์ํ์์ต๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ๋ง๋ค๊ณ ํ๋จํ์ฌ scanf์ printf๊ฐ cin, cout๋ณด๋ค ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ์ ์ถ๋ ฅ ๋ถ๋ถ๋ง ์์ ํ์ฌ ์ ์ถํ์๋๋ ๋ง์์ต๋๋ค #include #include using namespace std; vector vec; void hanoi(int n,int s,int e){ if(n==1){ vec.push_back({s,e}); } else{ hanoi(n-1,s,6-s-e); vec.push_back({s,e}); hanoi(n-1,6-s-e,e); } } int main(){ int num; scanf("%d",&num); hanoi(num,1,3); printf..
-
[Algorithm] ๋ค์ต์คํธ๋ผ(Dijkstra) ์๊ณ ๋ฆฌ์ฆAlgorithm 2020. 9. 8. 17:20
์ด ๊ธ์ (https://m.blog.naver.com/ndb796/221234424646) ๋ธ๋ก๊ทธ ๊ธ์ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์์ต๋๋ค. ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ(DP)์ ํ์ฉํ ๋ํ์ ์ธ ์ต๋จ ๊ฒฝ๋ก ํ์ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์ต์คํธ๋ผ๋ ํ๋์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ ๋ ์ด์ ์ ๊ตฌํ๋ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค๋ ํน์ง๋๋ฌธ์ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋จ์ ํ์ฉํ๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค. ์ถ๋ฐ ๋ ธ๋๋ฅผ ์ค์ ํฉ๋๋ค. ์ถ๋ฐ ๋ ธ๋์์ ๊ฐ ๋ ธ๋๊น์ง ๊ฐ๋ ์ต์ ๋น์ฉ์ ๋ฐฐ์ด์ ๋ง๋ค์ด ์ ์ฅํฉ๋๋ค. ๋ฐฉ๋ฌธํ์ง ์๋ ๋ ธ๋ ์ค์์ ๊ฐ์ฅ ๋น์ฉ์ด ์ ์ ๋ ธ๋๋ฅผ ์ ํํฉ๋๋ค. ํด๋น ๋ ธ๋๋ฅผ ๊ฑฐ์ณ์ ๊ฐ ๋ ธ๋๋ก ๊ฐ๋ ๊ฒฝ์ฐ๊น์ง ๋น๊ตํ์ฌ ์ต์ ๋น์ฉ์ ๊ฐฑ์ ํฉ๋๋ค. ์ ๊ณผ์ ์์ 3~4๋ฒ ๋ฐ๋ณตํฉ๋๋ค. ์ฌ๊ธฐ์ 3๋ฒ ๊ณผ์ ์์ ์ฝ๋ฉ ๊ตฌํ ์ ๋ฐฐ์ด์ ์์ ํ์ํด์ ์ต์ ..
-
[Algorithm] Kruskal Algorithm(ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ)Algorithm 2020. 9. 6. 03:20
์ด ๊ธ์ (https://m.blog.naver.com/ndb796/221230994142) ๋ธ๋ก๊ทธ๋ฅผ ๋ณด๊ณ ์์ฑํ์์ต๋๋ค. Kruskal Algorithm ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ์ฐ๊ฒฐ๋ ๊ทธ๋ํ์์ ๊ฐ์ฅ ์ต์ ๋น์ฉ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ๋ค๋ฅธ ๋ง๋ก๋ ์ต์ ๋น์ฉ ์ ์ฅ ํธ๋ฆฌ๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๋ํ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค. ํ๋ก๊ทธ๋๋จธ์ค (https://programmers.co.kr/learn/courses/30/lessons/42861?language=cpp) ์ด ๋ฌธ์ ๋ฅผ ์์๋ก ๋ค์ด ์ค๋ช ํ๋๋ก ํ๊ฒ ์ต๋๋ค. ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ์ฐ๊ธฐ ์ํ ํต์ฌ ๊ฐ๋ ์ ํฌ๊ฒ 3๊ฐ์ง๊ฐ ์กด์ฌํฉ๋๋ค. ์ต์ ๋น์ฉ ์์์ ๋ง๊ฒ ๊ฐ์ ๋ค์ ์ ๋ ฌ์ํต๋๋ค. ์ ๋ ฌ๋ ์์์ ๋ง๊ฒ ๊ทธ๋ํ์ ํฌํจ์ํค๋๋ฐ ํฌํจ์..
-
[Algorithm] Union - Find (์ ๋์จ ํ์ธ๋)๋?Algorithm 2020. 9. 6. 02:38
์ด ๊ธ์ (https://m.blog.naver.com/ndb796/221230967614) ๋ธ๋ก๊ทธ๋ฅผ ๋ณด๊ณ ์์ฑํ์์ต๋๋ค. Union Find ์ ๋์จ ํ์ธ๋๋ ๋ํ์ ์ธ ๊ทธ๋ํ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์ฌ๋ฌ ๊ฐ์ ๋ ธ๋๊ฐ ์์ ๋ ๋ ๊ฐ์ง์ ๋ ธ๋ ํ๋์ ๊ทธ๋ํ๋ก ์ฐ๊ฒฐ๋์ด ์๋์ง ํ๋ณํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ๋จผ์ , ๋ฐฐ์ด์ ๋ง๋ค์ด์ ํด๋น ๋ ธ๋๋ฒํธ๋ก ๋ถ๋ชจ ๋ ธ๋๋ฒํธ๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ํฉ๋๋ค. ์ฒ์์๋ ๋น์ฐํ ์ฐ๊ฒฐ๋ ๊ทธ๋ํ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์์ ์ ๋ ธ๋๋ฒํธ๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ๋ฉ๋๋ค. 1๊ณผ 2๋ฅผ ์ฐ๊ฒฐํ๊ฒ ๋๋ฉด ํฉ์น๋ค๋ ๋ป์์ Union์ด๋ผ๊ณ ๋ถ๋ฅด๊ณ ๋ ธ๋๋ฒํธ ์ค ์์ ๋ ธ๋๋ฒํธ๊ฐ ๋ถ๋ชจ๋ ธ๋๊ฐ ๋ฉ๋๋ค. ์ด๋ ๊ฒ๋ง ๊ตฌํํ ๊ฒฝ์ฐ 2์ 3์ด ์ฐ๊ฒฐํ๊ฒ ๋๋ฉด ๋ถ๋ชจ๋ ธ๋๊ฐ 2๊ฐ ๋๋๋ฐ 1๊ณผ 3์ด ๊ฐ์ ๊ทธ๋ํ๋ก ์ฐ๊ฒฐ๋์ด ์๋์ง๋ ์ ์๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ๊ทํจ์๋ฅผ..
-
[BaekJoon] ์ผ์ฑ sw ์ญ๋ ํ ์คํธ(์นํจ ๋ฐฐ๋ฌ)SW Test/BaekJoon 2020. 5. 12. 00:12
์ด ๋ฌธ์ ๋ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด #include #include using namespace std; // ์ฐ, ์, ์ข, ํ int dir[4][2]={{0,1},{-1,0},{0,-1},{1,0}}; int n; // map์ 1์ด ํ์๋ ๋ถ๋ถ์ ํ์ธํ์ฌ ์ฌ๊ฐํ์ ์ด๋ฃฌ๋ค๋ฉด answer+1 bool map[101][101]={0}; int main(){ int answer=0; cin>>n; for(int i=0;i>x>>y>>d>>g; vector v; // ๋ฐฉํฅ์ ๋ด์ ๋ฒกํฐ v.push_back(d); // 0์ธ๋ ๋ฐฉํฅ // ํ ์ ์ ๊ธฐ์ค์ผ๋ก ์๊ณ ๋ฐฉํฅ์ผ๋ก ํ๋ค๋ ๊ฒ์ // ํ์ ์ ๊ฐ ๋ฐฉํฅ์ ์๊ณ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ํ์ ํ๋ฉด ๋๋ค for(int j=1;j=0;k--){ int p..
-
[BaekJoon] ์ผ์ฑ sw ์ญ๋ ํ ์คํธ(ํ ํธ๋ก๋ฏธ๋ ธ)SW Test/BaekJoon 2020. 5. 12. 00:08
์ด ๋ฌธ์ ๋ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด #include #include using namespace std; int n,m; int map[500][500]; // ๊ฐ ํ ํธ๋ก๋ฏธ๋ ธ๊ฐ ๋์ฌ์ ์๋ ๊ฒฝ์ฐ์ ์ int cnt[5]={2,1,8,4,4}; // ๋ฐฉํฅ ๋ฒกํฐ dir[5][2] ๋ ๋๊ฐ์ ์ ์ํด ํ์ int dir[6][2]={{0,0},{0,1},{1,0},{0,-1},{-1,0},{1,-1}}; // ํ ํธ๋ก๋ฏธ๋ ธ๊ฐ ๋์ฌ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐฉํฅ์ผ๋ก ํ์ int vec[5][8][4]={ {{0,1,1,1},{0,2,2,2}}, {{0,1,2,3}}, {{0,2,2,1},{0,3,3,2},{0,1,2,2},{0,2,3,3},{0,2,2,3},{0,2,1,1},{0,3,2,2},{0,..
-
[BaekJoon] ์ผ์ฑ sw ์ญ๋ ํ ์คํธ(๋๋๊ณค ์ปค๋ธ)SW Test/BaekJoon 2020. 5. 5. 23:58
์ด ๋ฌธ์ ๋ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด #include #include using namespace std; int dir[4][2]={{0,1},{-1,0},{0,-1},{1,0}}; int n; bool map[101][101]={0}; int main(){ int answer=0; cin>>n; for(int i=0;i>x>>y>>d>>g; vector v; v.push_back(d); for(int j=1;j=0;k--){ int p=(v[k]+1)%4; v.push_back(p); } } map[y][x]=1; for(int j=0;j