๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)315

[๋ฐฑ์ค€,c++] 18430๋ฒˆ - ๋ฌด๊ธฐ ๊ณตํ•™ ๋ฌธ์ œ 18430๋ฒˆ: ๋ฌด๊ธฐ ๊ณตํ•™ ์ฒซ์งธ ์ค„์—๋Š” ๊ธธ๋™์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋‚˜๋ฌด ์žฌ๋ฃŒ์˜ ์„ธ๋กœ, ๊ฐ€๋กœ ํฌ๊ธฐ๋ฅผ ์˜๋ฏธํ•˜๋Š” ๋‘ ์ž์—ฐ์ˆ˜ N, M์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N, M ≤ 5) ๋‹ค์Œ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ์„œ, ๋งค ์ค„๋งˆ๋‹ค ๋‚˜๋ฌด ์žฌ๋ฃŒ์˜ ๊ฐ ์œ„์น˜์˜ ๊ฐ•๋„๋ฅผ ๋‚˜ํƒ€๋‚ด www.acmicpc.net ์ฝ”๋“œ #include #include using namespace std; int N, M , ans; int map[6][6]; bool visited[6][6]; vector coor[4] = { {{-1, 0 }, {0, 1}}, {{-1,0}, {0, -1}}, {{0, -1}, {1, 0}}, {{0, 1}, {1,0}} }; void backtracking(int x, int y, int sum){ ans = max(ans, su.. 2022. 8. 21.
[๋ฐฑ์ค€,c++] 1174๋ฒˆ - ์ค„์–ด๋“œ๋Š” ์ˆ˜ ๋ฌธ์ œ 1174๋ฒˆ: ์ค„์–ด๋“œ๋Š” ์ˆ˜ ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜๋ฅผ ์‹ญ์ง„๋ฒ•์œผ๋กœ ํ‘œ๊ธฐํ–ˆ์„ ๋•Œ, ์™ผ์ชฝ์—์„œ๋ถ€ํ„ฐ ์ž๋ฆฌ์ˆ˜๊ฐ€ ๊ฐ์†Œํ•  ๋•Œ, ๊ทธ ์ˆ˜๋ฅผ ์ค„์–ด๋“œ๋Š” ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 321์™€ 950์€ ์ค„์–ด๋“œ๋Š” ์ˆ˜์ด๊ณ , 322์™€ 958์€ ์•„๋‹ˆ๋‹ค. N๋ฒˆ์งธ๋กœ ์ž‘์€ ์ค„์–ด๋“œ๋Š” www.acmicpc.net ์ฝ”๋“œ #include #include #include #define ll long long using namespace std; int N; string num = "0123456789"; vector asc; void backtracking(int idx, string temp){ if(!temp.empty()){ string _temp = temp; reverse(_temp.begin(),_temp.end()); asc.push_back(.. 2022. 8. 21.
[๋ฐฑ์ค€,c++] 14712๋ฒˆ - ๋„ด๋ชจ๋„ด๋ชจ (Easy) ๋ฌธ์ œ 14712๋ฒˆ: ๋„ด๋ชจ๋„ด๋ชจ (Easy) ๋„ค๋ชจ๋Š” ๋ฟŒ××× ๊ฒŒ์ž„์— ๊นŠ์€ ๊ฐ๋ช…์„ ๋ฐ›์•„, ์ง์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ ๊ฒฉ์žํŒ๊ณผ “๋„ด๋ชจ”๋ผ๋Š” ์ˆ˜์ˆ˜๊ป˜๋ผ์˜ ์ƒ๋ฌผ์„ ์ด์šฉํ•˜๋Š” “๋„ด๋ชจ๋„ด๋ชจ”๋ผ๋Š” ๊ฒŒ์ž„์„ ๋งŒ๋“ค์—ˆ๋‹ค. ์ด ๊ฒŒ์ž„์˜ ๊ทœ์น™์€ ์•„์ฃผ ๊ฐ„๋‹จํ•˜๋‹ค. ๊ฒฉ์žํŒ์˜ www.acmicpc.net ์ฝ”๋“œ #include #include using namespace std; int N, M, ans; int map[26][26]; int dx[3] = {-1,0,-1}; int dy[3] = {0,-1,-1}; bool check(int x, int y){ int cnt = 0; for(int i = 0; i=0 && nx =0 && ny< M){ if(map[nx][ny]) cnt++; } } if(cnt == 3) return f.. 2022. 8. 20.
[๋ฐฑ์ค€,c++] 16987๋ฒˆ - ๊ณ„๋ž€์œผ๋กœ ๊ณ„๋ž€์น˜๊ธฐ ๋ฌธ์ œ 16987๋ฒˆ: ๊ณ„๋ž€์œผ๋กœ ๊ณ„๋ž€์น˜๊ธฐ ์›๋ž˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ๊ธฐ๋ณธ ์†Œ์–‘์€ ํŒ”๊ตฝํ˜€ํŽด๊ธฐ๋ฅผ ๋‹จ ํ•œ ๊ฐœ๋„ ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด๋ผ๊ณ  ํ•˜์ง€๋งŒ ์ธ๋ฒ”์ด๋Š” 3๋Œ€ 500์„ ๋„˜๊ธฐ๋Š” ๋ช‡ ์•ˆ๋˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ ์ค‘ ํ•œ ๋ช…์ด๋‹ค. ์ธ๋ฒ”์ด๋Š” BOJ์—์„œ ํ‹€๋ฆฐ ์ œ์ถœ์„ ํ•  ๋•Œ๋งˆ๋‹ค ํ„ฑ www.acmicpc.net ์ฝ”๋“œ #include #include using namespace std; int N, ans, temp_cnt; vectorv; void backtracking(int idx){ if(idx == N+1) return; for(int i=0; ib; v.push_back({a,b}); // {๋‚ด๊ตฌ๋„, ๋ฌด๊ฒŒ} } backtracking(0); cout 2022. 8. 20.
[๋ฐฑ์ค€,c++] 10971๋ฒˆ - ์™ธํŒ์› ์ˆœํšŒ2 ๋ฌธ์ œ 10971๋ฒˆ: ์™ธํŒ์› ์ˆœํšŒ 2 ์ฒซ์งธ ์ค„์— ๋„์‹œ์˜ ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (2 ≤ N ≤ 10) ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ๋น„์šฉ ํ–‰๋ ฌ์ด ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ–‰๋ ฌ์˜ ์„ฑ๋ถ„์€ 1,000,000 ์ดํ•˜์˜ ์–‘์˜ ์ •์ˆ˜์ด๋ฉฐ, ๊ฐˆ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋Š” 0์ด ์ฃผ์–ด์ง„๋‹ค. W[i][j]๋Š” ๋„์‹œ i์—์„œ j www.acmicpc.net ์ฝ”๋“œ #include #include #include using namespace std; int N, min_cost = 1e9; int graph[11][11]; int visited[11]; void dfs(int start, int node, int cost, int depth){\ if(depth == N && node == start){ min_cost = min(min_cost, cost + graph.. 2022. 8. 20.
[๋ฐฑ์ค€,c++] 17266๋ฒˆ - ์–ด๋‘์šด ๊ตด๋‹ค๋ฆฌ ๋ฌธ์ œ 17266๋ฒˆ: ์–ด๋‘์šด ๊ตด๋‹ค๋ฆฌ ์ธํ•˜๋Œ€ํ•™๊ต ํ›„๋ฌธ ๋’ค์ชฝ์—๋Š” ์–ด๋‘์šด ๊ตด๋‹ค๋ฆฌ๊ฐ€ ์žˆ๋‹ค. ๊ฒ์Ÿ์ด ์ƒ๋นˆ์ด๋Š” ๊ธธ์ด ์กฐ๊ธˆ์ด๋ผ๋„ ์–ด๋‘ก๋‹ค๋ฉด ๊ฐ€์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๊ตด๋‹ค๋ฆฌ๋กœ ๊ฐ€๋ฉด ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋กœ ์ง‘๊นŒ์ง€ ๊ฐˆ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ตด๋‹ค๋ฆฌ๋Š” ์–ด๋‘ก๊ธฐ ๋•Œ๋ฌธ์— ๋น™ www.acmicpc.net ์ฝ”๋“œ #include #include #include using namespace std; int N, M; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin>>N>>M; vector v(M); double height = 0; for(int i=0; i>v[i]; if(M==1) height = N; height = fmax(v.front(), (ceil(N-v.back()))); for(int i=.. 2022. 8. 18.
[๋ฐฑ์ค€,c++] 17521๋ฒˆ - Byte Coin ๋ฌธ์ œ 17521๋ฒˆ: Byte Coin ์ž…๋ ฅ์€ ํ‘œ์ค€์ž…๋ ฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ค„์— ์š”์ผ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์–‘์˜ ์ •์ˆ˜ n๊ณผ ์ดˆ๊ธฐ ํ˜„๊ธˆ W(1 ≤ n ≤ 15, 1 ≤ W ≤ 100,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ n ๊ฐœ์˜ ์ค„์—์„œ, i๋ฒˆ์งธ ์ค„์€ i์ผ์˜ ๋ฐ”์ดํŠธ ์ฝ”์ธ ๊ฐ€๊ฒฉ์„ ๋‚˜ www.acmicpc.net ์ฝ”๋“œ #include #include #define ll long long using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); ll n, w; cin>>n>>w; ll coin = 0; vectorv(n+1); for(int i=0; i>v[i]; for(int i=0; i 2022. 8. 18.
[๋ฐฑ์ค€,c++] 11437๋ฒˆ - LCA ๋ฌธ์ œ 11437๋ฒˆ: LCA ์ฒซ์งธ ์ค„์— ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง€๊ณ , ๋‹ค์Œ N-1๊ฐœ ์ค„์—๋Š” ํŠธ๋ฆฌ ์ƒ์—์„œ ์—ฐ๊ฒฐ๋œ ๋‘ ์ •์ ์ด ์ฃผ์–ด์ง„๋‹ค. ๊ทธ ๋‹ค์Œ ์ค„์—๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณตํ†ต ์กฐ์ƒ์„ ์•Œ๊ณ ์‹ถ์€ ์Œ์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง€๊ณ , ๋‹ค์Œ M๊ฐœ ์ค„์—๋Š” ์ • www.acmicpc.net ์ฝ”๋“œ #include #include using namespace std; int N, M; vectorgraph[50001]; int depth[50001]; int parent[50001]; bool visited[50001]; void dfs(int node, int _depth){ visited[node] = 1; depth[node] = _depth; for(auto next: graph[node]){ if(!visited[next]){ par.. 2022. 8. 17.
[๋ฐฑ์ค€,c++] 15900๋ฒˆ - ๋‚˜๋ฌด ํƒˆ์ถœ ๋ฌธ์ œ 15900๋ฒˆ: ๋‚˜๋ฌด ํƒˆ์ถœ ํ‰์†Œ์— ์‚ฌ์ด๊ฐ€ ์ข‹์ง€ ์•Š๋˜ ์„ฑ์›์ด์™€ ํ˜•์„์ด๊ฐ€ ๋“œ๋””์–ด ์ œ๋Œ€๋กœ ํ•œ ํŒ ๋ถ™์œผ๋ ค๊ณ  ํ•œ๋‹ค. ์„ฑ์›์ด์™€ ํ˜•์„์ด ๋‘˜๊ณผ ๋ชจ๋‘ ๋˜‘๊ฐ™์ด ์นœํ•œ ์ธ์„ญ์ด๊ฐ€ ๋Œ€๊ฒฐ ์ข…๋ชฉ์„ ์ •ํ•ด ๊ฐ€์ ธ์™”๋‹ค. ๋ฐ”๋กœ '๋‚˜๋ฌด ํƒˆ์ถœ' ์ด๋ผ๋Š” ๋ณด๋“œ๊ฒŒ www.acmicpc.net ์ฝ”๋“œ #include #include using namespace std; int N; vectorgraph[500001]; bool visited[500001]; int odd_height_cnt; void dfs(int node, int depth){ if(graph[node].size()==1 && node != 1){ // ๋ฆฌํ”„๋…ธ๋“œ์ผ ๋•Œ if(depth&1) odd_height_cnt++; return; } visited[node] = 1; for(a.. 2022. 8. 15.