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

Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป457

[๋ฐฑ์ค€,c++] 6443๋ฒˆ - ์• ๋„ˆ๊ทธ๋žจ ๋ฌธ์ œ 6443๋ฒˆ: ์• ๋„ˆ๊ทธ๋žจ ์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ N ์ด, ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์˜๋‹จ์–ด๊ฐ€ ๋“ค์–ด์˜จ๋‹ค. ์˜๋‹จ์–ด๋Š” ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๋‹จ์–ด์˜ ๊ธธ์ด๋Š” 20๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๊ณ , ์• ๋„ˆ๊ทธ๋žจ์˜ ์ˆ˜๊ฐ€ 100,000๊ฐœ ์ดํ•˜์ธ ๋‹จ์–ด๋งŒ ์ž…๋ ฅ์œผ๋กœ ์ฃผ www.acmicpc.net ์ฝ”๋“œ #include #include using namespace std; int main(){ int N; cin>>N; while(N--){ string inp; cin>>inp; sort(inp.begin(), inp.end()); do{ cout 2022. 8. 21.
[๋ฐฑ์ค€,c++] 3980๋ฒˆ - ์„ ๋ฐœ ๋ช…๋‹จ ๋ฌธ์ œ 3980๋ฒˆ: ์„ ๋ฐœ ๋ช…๋‹จ ๊ฐ๊ฐ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด์„œ, ๋ชจ๋“  ํฌ์ง€์…˜์˜ ์„ ์ˆ˜๋ฅผ ์ฑ„์› ์„ ๋•Œ, ๋Šฅ๋ ฅ์น˜์˜ ํ•ฉ์˜ ์ตœ๋Œ“๊ฐ’์„ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค. ํ•ญ์ƒ ํ•˜๋‚˜ ์ด์ƒ์˜ ์˜ฌ๋ฐ”๋ฅธ ๋ผ์ธ์—…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. www.acmicpc.net ์ฝ”๋“œ #include #include using namespace std; int map[11][11]; int ans; int visited[11]; void dfs(int peo, int sum){ if(peo == 11){ ans = max(ans, sum); return; } for(int i=0; i>T; while(T--){ for(int i=0; imap[i][k]; } } dfs(0,0); cout 2022. 8. 21.
[๋ฐฑ์ค€,c++] 2580๋ฒˆ - ์Šค๋„์ฟ  ๋ฌธ์ œ 2580๋ฒˆ: ์Šค๋„์ฟ  ์Šค๋„์ฟ ๋Š” 18์„ธ๊ธฐ ์Šค์œ„์Šค ์ˆ˜ํ•™์ž๊ฐ€ ๋งŒ๋“  '๋ผํ‹ด ์‚ฌ๊ฐํ˜•'์ด๋ž‘ ํผ์ฆ์—์„œ ์œ ๋ž˜ํ•œ ๊ฒƒ์œผ๋กœ ํ˜„์žฌ ๋งŽ์€ ์ธ๊ธฐ๋ฅผ ๋ˆ„๋ฆฌ๊ณ  ์žˆ๋‹ค. ์ด ๊ฒŒ์ž„์€ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๊ฐ€๋กœ, ์„ธ๋กœ ๊ฐ๊ฐ 9๊ฐœ์”ฉ ์ด 81๊ฐœ์˜ ์ž‘์€ ์นธ์œผ๋กœ ์ด๋ฃจ www.acmicpc.net ์ฝ”๋“œ #include #include #include using namespace std; int N = 9; int map[9][9]; vector blank; // 0 ์ขŒํ‘œ bool flag = false; int ans[9][9]; bool check(int a, int b) { //ํ•œ์ค„ ์ฒดํฌ for (int i = 0; i < 9; i++) { if (map[i][b] == map[a][b] && i != a) return false; //ํ–‰ ํ™•์ธ .. 2022. 8. 21.
[๋ฐฑ์ค€,c++] 2661๋ฒˆ - ์ข‹์€์ˆ˜์—ด ๋ฌธ์ œ 2661๋ฒˆ: ์ข‹์€์ˆ˜์—ด ์ฒซ ๋ฒˆ์งธ ์ค„์— 1, 2, 3์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” ๊ธธ์ด๊ฐ€ N์ธ ์ข‹์€ ์ˆ˜์—ด๋“ค ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜์—ด๋งŒ ์ถœ๋ ฅํ•œ๋‹ค. ์ˆ˜์—ด์„ ์ด๋ฃจ๋Š” 1, 2, 3๋“ค ์‚ฌ์ด์—๋Š” ๋นˆ์นธ์„ ๋‘์ง€ ์•Š๋Š”๋‹ค. www.acmicpc.net ์ฝ”๋“œ #include #include #include using namespace std; int N; string ans; bool flag = false; bool isvalid(string num){ int end = num.length()-1; for(int i=1; iN; backtracking(0, ""); cout string์— ๊ณ„์† ๋”ํ•ด sanghyu.tistory.com ํ•ด๋‹น ๋ถ€๋ถ„์€ ์œ„ ๋ธ”๋กœ๊ทธ์˜ ํ’€์ด ๋ฐฉ๋ฒ•์„ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ธ์ ‘ํ•œ ๋‘ ๊ฐœ์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์ด ๊ฐ™.. 2022. 8. 21.
[๋ฐฑ์ค€,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.