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

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

[๋ฐฑ์ค€,c++] 14391๋ฒˆ - ์ข…์ด ์กฐ๊ฐ 14391๋ฒˆ: ์ข…์ด ์กฐ๊ฐ ์˜์„ ์ด๋Š” ์ˆซ์ž๊ฐ€ ์“ฐ์—ฌ ์žˆ๋Š” ์ง์‚ฌ๊ฐํ˜• ์ข…์ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ข…์ด๋Š” 1×1 ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐํ˜• ์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๊ณ , ์ˆซ์ž๋Š” ๊ฐ ์นธ์— ํ•˜๋‚˜์”ฉ ์“ฐ์—ฌ ์žˆ๋‹ค. ํ–‰์€ ์œ„์—์„œ๋ถ€ํ„ฐ ์•„๋ž˜๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ๊ณ , www.acmicpc.net #include #include #include #include using namespace std; int map[4][4]; int main(){ int N,M; cin>>N>>M; for(int i=0; i 2021. 11. 7.
[๋ฐฑ์ค€,c++] 1431๋ฒˆ - ์‹œ๋ฆฌ์–ผ ๋ฒˆํ˜ธ 14391๋ฒˆ: ์ข…์ด ์กฐ๊ฐ ์˜์„ ์ด๋Š” ์ˆซ์ž๊ฐ€ ์“ฐ์—ฌ ์žˆ๋Š” ์ง์‚ฌ๊ฐํ˜• ์ข…์ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ข…์ด๋Š” 1×1 ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐํ˜• ์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๊ณ , ์ˆซ์ž๋Š” ๊ฐ ์นธ์— ํ•˜๋‚˜์”ฉ ์“ฐ์—ฌ ์žˆ๋‹ค. ํ–‰์€ ์œ„์—์„œ๋ถ€ํ„ฐ ์•„๋ž˜๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ๊ณ , www.acmicpc.net #include #include #include using namespace std; bool cmp(string a, string b) { if (a.length() != b.length()) return a.length() N; .. 2021. 11. 7.
[๋ฐฑ์ค€,c++] 14284๋ฒˆ - ๊ฐ„์„  ์ด์–ด๊ฐ€๊ธฐ2 14284๋ฒˆ: ๊ฐ„์„  ์ด์–ด๊ฐ€๊ธฐ 2 ์ •์  n๊ฐœ, 0๊ฐœ์˜ ๊ฐ„์„ ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  m๊ฐœ์˜ ๊ฐ€์ค‘์น˜ ๊ฐ„์„ ์˜ ์ •๋ณด๊ฐ€ ์žˆ๋Š” ๊ฐ„์„ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ„์„ ๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” ๊ฐ„์„  ํ•˜๋‚˜์”ฉ ๊ทธ๋ž˜ํ”„์— ์ถ”๊ฐ€ํ•ด ๋‚˜๊ฐˆ ๊ฒƒ์ด๋‹ค. www.acmicpc.net #include #include #include #define INF 1e9 //๋ฌดํ•œ๋Œ€๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฐ’์œผ๋กœ 10์–ต์„ ์ง€์ •. using namespace std; vectorgraph[5002]; int n, m, start, fin; //n=์ •์ ์˜ ๊ฐœ์ˆ˜ m=๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ start=์‹œ์ž‘ ๋…ธ๋“œ fin=๋ ๋…ธ๋“œ int d[5002]; //๊ฐ€์ค‘์น˜๋ฅผ ์ €์žฅํ•˜๋Š” ํ…Œ์ด๋ธ” void dijkstra(int start) { priority_queuepq; pq.push({ 0,s.. 2021. 11. 6.
[๋ฐฑ์ค€,c++] 1427๋ฒˆ - ์†ŒํŠธ์ธ์‚ฌ์ด๋“œ 1427๋ฒˆ: ์†ŒํŠธ์ธ์‚ฌ์ด๋“œ ์ฒซ์งธ ์ค„์— ์ •๋ ฌํ•˜๋ ค๊ณ  ํ•˜๋Š” ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 1,000,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. www.acmicpc.net include #include #include using namespace std; bool desc(int n1, int n2) { return n1 > n2; } int main() { string s; vector v; cin >> s; for (int i = 0; i < s.length(); i++) { v.push_back(s[i]-'0'); } sort(v.begin(), v.end(), desc); for (int i = 0; i < v.size(); i++) { cout 2021. 11. 6.
[๋ฐฑ์ค€,c++] 14241๋ฒˆ - ์Šฌ๋ผ์ž„ ํ•ฉ์น˜๊ธฐ 14241๋ฒˆ: ์Šฌ๋ผ์ž„ ํ•ฉ์น˜๊ธฐ ์˜์„ ์ด์™€ ํšจ๋นˆ์ด๋Š” ์Šฌ๋ผ์ž„์„ ํ•ฉ์น˜๋Š” ๊ฒŒ์ž„์„ ํ•˜๊ณ  ์žˆ๋‹ค. ๋‘ ์‚ฌ๋žŒ์€ ๋‘ ์Šฌ๋ผ์ž„์„ ๊ณจ๋ผ์„œ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์•ผ ํ•œ๋‹ค. ๊ฒŒ์ž„์€ ์Šฌ๋ผ์ž„์ด ํ•˜๋‚˜ ๋‚จ์•˜์„ ๋•Œ ๋๋‚œ๋‹ค. ๋ชจ๋“  ์Šฌ๋ผ์ž„์€ ์–‘์ˆ˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋‘ www.acmicpc.net #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); priority_queuepq; //์ตœ์†Œํž™ int N; cin >> N; while (N--) { int num; cin >> num; pq.push(num); } int sum = 0, ans = 0; while (pq.size() != 1) { int temp1 = pq.top(); .. 2021. 11. 6.
[๋ฐฑ์ค€,c++] 1406๋ฒˆ - ์—๋””ํ„ฐ 1406๋ฒˆ: ์—๋””ํ„ฐ ์ฒซ์งธ ์ค„์—๋Š” ์ดˆ๊ธฐ์— ํŽธ์ง‘๊ธฐ์— ์ž…๋ ฅ๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๋ฌธ์ž์—ด์€ ๊ธธ์ด๊ฐ€ N์ด๊ณ , ์˜์–ด ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ธธ์ด๋Š” 100,000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ž…๋ ฅํ•  ๋ช…๋ น์–ด์˜ ๊ฐœ์ˆ˜ www.acmicpc.net #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); string s; cin >> s; int t; cin >> t; stackleft, right; for (int i = 0; i > com; if (com == 'L'.. 2021. 11. 6.
[๋ฐฑ์ค€,c++] 13913๋ฒˆ - ์ˆจ๋ฐ”๊ผญ์งˆ4 https://www.acmicpc.net/problem/13913 13913๋ฒˆ: ์ˆจ๋ฐ”๊ผญ์งˆ 4 ์ˆ˜๋นˆ์ด๋Š” ๋™์ƒ๊ณผ ์ˆจ๋ฐ”๊ผญ์งˆ์„ ํ•˜๊ณ  ์žˆ๋‹ค. ์ˆ˜๋นˆ์ด๋Š” ํ˜„์žฌ ์  N(0 ≤ N ≤ 100,000)์— ์žˆ๊ณ , ๋™์ƒ์€ ์  K(0 ≤ K ≤ 100,000)์— ์žˆ๋‹ค. ์ˆ˜๋นˆ์ด๋Š” ๊ฑท๊ฑฐ๋‚˜ ์ˆœ๊ฐ„์ด๋™์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ, ์ˆ˜๋นˆ์ด์˜ ์œ„์น˜๊ฐ€ X์ผ www.acmicpc.net #include #include #define MAX 100001 using namespace std; int N,K; //N=์ˆ˜๋นˆ์ด๊ฐ€ ์žˆ๋Š” ์œ„์น˜, K=๋™์ƒ์ด ์žˆ๋Š” ์œ„์น˜ int visited[MAX]; int sec=MAX; vectorpath_print; int path_memory[MAX]; void bfs(int start,int time){ queueq; .. 2021. 11. 6.
[๋ฐฑ์ค€,c++] 1389๋ฒˆ - ์ผ€๋นˆ ๋ฒ ์ด์ปจ์˜ 6๋‹จ๊ณ„ ๋ฒ•์น™ 1389๋ฒˆ: ์ผ€๋นˆ ๋ฒ ์ด์ปจ์˜ 6๋‹จ๊ณ„ ๋ฒ•์น™ ์ฒซ์งธ ์ค„์— ์œ ์ €์˜ ์ˆ˜ N (2 ≤ N ≤ 100)๊ณผ ์นœ๊ตฌ ๊ด€๊ณ„์˜ ์ˆ˜ M (1 ≤ M ≤ 5,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์—๋Š” ์นœ๊ตฌ ๊ด€๊ณ„๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์นœ๊ตฌ ๊ด€๊ณ„๋Š” A์™€ B๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, A์™€ B๊ฐ€ ์นœ๊ตฌ๋ผ๋Š” ๋œป www.acmicpc.net #include #include #include #define INF 1e9 //๋ฌดํ•œ๋Œ€๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฐ’์œผ๋กœ 10์–ต์„ ์ง€์ • using namespace std; int N, M; //N=์œ ์ €์˜ ์ˆ˜, M=์นœ๊ตฌ ๊ด€๊ณ„ ์ˆ˜ int graph[101][101]; int main() { cin >> N >> M; for (int i = 0; i < 101; i++) { fill(graph[i], graph[i] + 101,INF.. 2021. 11. 6.
[๋ฐฑ์ค€,c++] 1377๋ฒˆ - ๋ฒ„๋ธ” ์†ŒํŠธ 1377๋ฒˆ: ๋ฒ„๋ธ” ์†ŒํŠธ ์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 500,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— A[1]๋ถ€ํ„ฐ A[N]๊นŒ์ง€ ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. A์— ๋“ค์–ด์žˆ๋Š” ์ˆ˜๋Š” 1,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜ ๋˜๋Š” 0์ด๋‹ค. www.acmicpc.net ๋ฐฐ์—ด์˜ ๊ฐ’์ด ๋ช‡ ๋ฒˆ ์ธ๋ฑ์Šค๋กœ ์ด๋™ํ–ˆ๋Š”์ง€ ๊ตฌํ•˜๋ฉด ๋ฒ„๋ธ” ์ •๋ ฌ ํšŸ์ˆ˜๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ •๋ ฌ ์ „๊ณผ ์ •๋ ฌ ํ›„์˜ ์ธ๋ฑ์Šค๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ขŒ์ธก์œผ๋กœ ์ด๋™ํ•œ ๊ฐ’ ์ค‘ ๊ทธ ์ฐจ๊ฐ€ ๊ฐ€์žฅ ํฐ ๊ฐ’์ด ์ถœ๋ ฅ ๊ฐ’์ด ๋œ๋‹ค. ์ •๋ ฌ ์ „ [0 1 2 3 4 ] // ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ 10 1 5 2 3 ์ •๋ ฌ ํ›„ [1 3 4 2 0 ] 1 2 3 5 10 ์ธ๋ฑ์Šค์˜ ์ฐจ๋ฅผ ๊ตฌํ•˜์—ฌ ๊ทธ ๊ฐ’์ด ์–‘์ˆ˜์ด๋ฉด ์ขŒ์ธก์œผ๋กœ ์ด๋™ํ–ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. 1 3 4 2 0 0 1 2 3 4 --------------.. 2021. 11. 6.