[c++] BOJ 1520 :: ๋‚ด๋ฆฌ๋ง‰๊ธธ
Algorithm ๋ฌธ์ œ/BOJ 2021. 3. 12. 10:41

๋‚œ์ด๋„ : ๊ณจ๋“œ 4 ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : 1์‹œ๊ฐ„ ๋ฐ˜ ์ด์ƒ ๋ฌธ์ œ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ํ’€์ด ์šฐ์„  ์™„์ „ํƒ์ƒ‰์œผ๋กœ ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ์ƒ๊ฐํ•ด๋ณธ๋‹ค. ์™„์ „ํƒ์ƒ‰์œผ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด dfs๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์žฌ๊ท€๋กœ ๊ตฌํ˜„ํ•  ๊ฒƒ์ด๋‹ค. ์žฌ๊ท€์˜ ๋งค๊ฐœ๋ณ€์ˆ˜(๋ฐ›๋Š” ์ •๋ณด)๋Š” ํ˜„์žฌ ์œ„์น˜์ผ ๊ฒƒ์ด๊ณ , ๋‚ด๋ณด๋‚ด๋Š” ์ •๋ณด๋Š” ํ˜„์žฌ ์œ„์น˜์—์„œ ๋งˆ์ง€๋ง‰๊นŒ์ง€์˜ ๊ฒฝ๋กœ์˜ ์ˆ˜์ผ ๊ฒƒ์ด๋‹ค. (0,0)์„ ์ฒ˜์Œ์œผ๋กœ ์žฌ๊ท€ํ•จ์ˆ˜์— ๋„˜๊ธฐ๋ฉด (0,0)์—์„œ ๋๊นŒ์ง€์˜ ๊ฒฝ๋กœ์˜ ์ˆ˜์ด๋ฏ€๋กœ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋‹ต์ด ๋‚˜์˜จ๋‹ค. ์žฌ๊ท€๋Š” ์œ„, ์˜ค๋ฅธ์ชฝ, ์•„๋ž˜, ์™ผ์ชฝ์œผ๋กœ ์ ‘ํ•œ ๋ถ€๋ถ„์œผ๋กœ ์˜ฎ๊ฒจ๊ฐ€๋ฉฐ ํ•ด๋‹น ์žฅ์†Œ์˜ ๊ฒฝ๋กœ์˜ ์ˆ˜๋ฅผ ํ˜„์žฌ ์žฅ์†Œ์˜ ๊ฒฝ๋กœ์˜ ์ˆ˜์— ๋”ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค. ์ด ๋•Œ, ์žฅ์†Œ๋Š” ๋งต ์•ˆ์— ์žˆ์–ด์•ผํ•œ๋‹ค. ์ด ๋•Œ, ๋‚ด๋ฆฌ๋ง‰๊ธธ๋กœ๋งŒ ๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ˜„์žฌ๋ณด๋‹ค ๋” ๋†’์€ ์ˆ˜๋ฅผ ๊ฐ€์ง„ ์žฅ์†Œ๋Š” ์ œ์™ธ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑํ•˜๋ฉด ๊ฐ”๋˜ ๊ณณ์„ ๋˜ ๊ฐ€๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธฐ..

[c++] BOJ 12865 :: ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ
Algorithm ๋ฌธ์ œ/BOJ 2021. 3. 12. 10:39

๋‚œ์ด๋„ : ๊ณจ๋“œ 5 ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : 1์‹œ๊ฐ„ ๋ฐ˜ ์ด์ƒ ๋ฌธ์ œ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ์˜ค๋‹ต ์ฒ˜์Œ์— ์™„์ „ํƒ์ƒ‰์œผ๋กœ ํ•˜๋˜ ์ตœ๋Œ€ํ•œ ์กฐํ•ฉ์˜ ๋ฒ”์œ„๋ฅผ ์ค„์—ฌ์„œ ๊ตฌํ˜„ํ•ด๋ณด์•˜๋‹ค. ํ•˜์ง€๋งŒ, ์‹œ๊ฐ„ ์ดˆ๊ณผ๋กœ ์‹คํŒจ..! #include #include #include #include using namespace std; // 6์‹œ 4๋ถ„ ์‹œ์ž‘ => 6์‹œ 42๋ถ„ ์ค‘๋‹จ, 11์‹œ 12๋ถ„ ์‹œ์ž‘ => // N > K; for (int i = 0; i > w >> v; vec.push_back(make_pair(w, v)); } // ๋ฌด๊ฒŒ ์ˆœ ์ •๋ ฌ sort(vec.begin(), vec.end(), compare); // ๋ฌด๊ฒŒ๋Š” ๊ฐ™์€๋ฐ ๊ฐ€์น˜๊ฐ€ ์ž‘์€ ๊ฒƒ์€ ์—†์• ๊ธฐ for (int i = 1; i < vec.size(..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋“ฑ๊ตฃ๊ธธ :: C++, ํšจ์œจ์„ฑ ํ†ต๊ณผํ•˜๊ธฐ, ์ฝ”๋“œ
Algorithm ๋ฌธ์ œ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2020. 12. 27. 11:31

๋“ฑ๊ตฃ๊ธธ ๋ฌธ์ œ ๋ฌธ์ œ ์„ค๋ช… ๊ณ„์†๋˜๋Š” ํญ์šฐ๋กœ ์ผ๋ถ€ ์ง€์—ญ์ด ๋ฌผ์— ์ž ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋ฌผ์— ์ž ๊ธฐ์ง€ ์•Š์€ ์ง€์—ญ์„ ํ†ตํ•ด ํ•™๊ต๋ฅผ ๊ฐ€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ง‘์—์„œ ํ•™๊ต๊นŒ์ง€ ๊ฐ€๋Š” ๊ธธ์€ m x n ํฌ๊ธฐ์˜ ๊ฒฉ์ž๋ชจ์–‘์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ m = 4, n = 3 ์ธ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์™ผ์ชฝ ์œ„, ์ฆ‰ ์ง‘์ด ์žˆ๋Š” ๊ณณ์˜ ์ขŒํ‘œ๋Š” (1, 1)๋กœ ๋‚˜ํƒ€๋‚ด๊ณ  ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜, ์ฆ‰ ํ•™๊ต๊ฐ€ ์žˆ๋Š” ๊ณณ์˜ ์ขŒํ‘œ๋Š” (m, n)์œผ๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ฒฉ์ž์˜ ํฌ๊ธฐ m, n๊ณผ ๋ฌผ์ด ์ž ๊ธด ์ง€์—ญ์˜ ์ขŒํ‘œ๋ฅผ ๋‹ด์€ 2์ฐจ์› ๋ฐฐ์—ด puddles์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์˜ค๋ฅธ์ชฝ๊ณผ ์•„๋ž˜์ชฝ์œผ๋กœ๋งŒ ์›€์ง์—ฌ ์ง‘์—์„œ ํ•™๊ต๊นŒ์ง€ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ตœ๋‹จ๊ฒฝ๋กœ์˜ ๊ฐœ์ˆ˜๋ฅผ 1,000,000,007๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ ๊ฒฉ์ž์˜ ํฌ๊ธฐ m, n์€ 1 ..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์žฌ๊ท€ํ˜ธ์ถœ (๋™์  ๊ณ„ํš๋ฒ•)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 8. 9. 20:26

๐Ÿ‘๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ Dynamic Programming ์ฆ‰, DP๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ฒ•์ด๋‹ค. ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ์ ํ™”์‹์œผ๋กœ ๋งŒ๋“ค์–ด ๋ถ„ํ•  ์ •๋ณตํ•  ๋•Œ, ๋ฐ˜๋ณต๋ฌธ ๋˜๋Š” ์žฌ๊ท€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด ๊ณผ์ •์—์„œ ๊ณ„์‚ฐ์˜ ๊ฒฐ๊ณผ ๊ฐ’์„ ์ €์žฅํ•ด๋‘์–ด ์ค‘๋ณต๋˜๋Š” ๊ณ„์‚ฐ์„ ํ•˜์ง€ ์•Š๋„๋ก ๋งŒ๋“ค์–ด์ค€๋‹ค. ์ด๋Š” ์ ํ™”์‹ ์ด๋ ‡๊ฒŒ ๊ฒฐ๊ณผ ๊ฐ’์„ ์ €์žฅํ•ด๋‘๋Š” ๊ฒƒ์„ ๋ฉ”๋ชจ์ด์ œ์ด์…˜์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ๋ณดํ†ต ๋ฐฐ์—ด์˜ ํ˜•ํƒœ๋กœ ์ˆ˜ํ–‰๋œ๋‹ค. DP ๊ณผ์ • ์ „์ฒด ๋ฌธ์ œ๋ฅผ ๋ถ€๋ถ„ ๋ฌธ์ œ๋กœ ๋‹จ์ˆœํ™”ํ•œ๋‹ค. 1๋ฒˆ์˜ ๊ณผ์ •์—์„œ ์ ํ™”์‹์„ ๋„์ถœํ•œ๋‹ค. ์ ํ™”์‹์„ ์ด์šฉํ•˜์—ฌ ๋ฐฐ์—ด๋กœ ๊ฐ„๋‹จํžˆ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ƒ๊ฐํ•œ๋‹ค. bottom-up top-down ์—†๋‹ค๋ฉด ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ๋ฉ”๋ชจ์ด์ œ์ด์…˜ํ•œ๋‹ค. ๋ฉ”๋ชจ์ด์ œ์ด์…˜ ๋ฐฉ์‹์€ ๋ณดํ†ต ๋ฐฐ์—ด์ด๋‹ค. ์ „์ฒด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค. ๋Œ€ํ‘œ ๋ฌธ์ œ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด ๊ตฌํ•˜๊ธฐ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ „๋žต 1๊ถŒ :: Quantization[์–‘์žํ™”] (์ฝ”๋“œ, ์•Œ๊ณ ๋ฆฌ์ฆ˜)
Algorithm ๋ฌธ์ œ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต 2020. 5. 10. 14:06

Quantization https://www.algospot.com/judge/problem/read/QUANTIZE ๋‚˜์˜ ๋‹ต ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—ด์„ ์ •๋ ฌํ•œ๋‹ค. ๋ถ€๋ถ„ ์ˆ˜์—ด๋“ค์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋Œ๋ฉด์„œ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ์˜ค์ฐจํ•ฉ์ด ๊ฐ€์žฅ ์ ์€ ์ˆ˜์—ด์„ ๊ตฌํ•œ๋‹ค. 2๋ฒˆ ๊ณผ์ •์— ๋Œ€ํ•ด์„œ ์ตœ์ ๋ถ€๋ถ„๊ตฌ์กฐ์ž„์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ๊ฐ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ์˜ค์ฐจํ•ฉ์„ ๋ฉ”๋ชจ์ด์ œ์ด์…˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•˜์—ฌ์•ผํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋ณธ์ธ์€ ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๋ชจ๋‘ ์™„์„ฑํ–ˆ์„ ๋•Œ ์ง„ํ–‰ํ•˜๋Š” ์‹์œผ๋กœ ํ•˜์—ฌ ์–ด์จŒ๋“  ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๋งŒ๋“œ๋Š” ์žฌ๊ท€ํ•จ์ˆ˜์˜ ๋์— ๋„๋‹ฌํ•ด์•ผ ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ์ด ์ ์ด ์‹œ๊ฐ„์ดˆ๊ณผ์˜ ์›์ธ์ด ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์ฝ”๋“œ ์ฝ”๋“œ1 #include #include using namespace std; int N, S; int arr[100]; int* num_idx..

[c++] BOJ 1149๋ฒˆ :: RGB๊ฑฐ๋ฆฌ
Algorithm ๋ฌธ์ œ/BOJ 2020. 4. 16. 21:31

RGB ๊ฑฐ๋ฆฌ ์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ œ์ถœ ์ •๋‹ต ๋งž์€ ์‚ฌ๋žŒ ์ •๋‹ต ๋น„์œจ 0.5 ์ดˆ (์ถ”๊ฐ€ ์‹œ๊ฐ„ ์—†์Œ) 128 MB 42269 19789 14882 47.682% ๋ฌธ์ œ RGB๊ฑฐ๋ฆฌ์—๋Š” ์ง‘์ด N๊ฐœ ์žˆ๋‹ค. ๊ฑฐ๋ฆฌ๋Š” ์„ ๋ถ„์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๊ณ , 1๋ฒˆ ์ง‘๋ถ€ํ„ฐ N๋ฒˆ ์ง‘์ด ์ˆœ์„œ๋Œ€๋กœ ์žˆ๋‹ค. ์ง‘์€ ๋นจ๊ฐ•, ์ดˆ๋ก, ํŒŒ๋ž‘ ์ค‘ ํ•˜๋‚˜์˜ ์ƒ‰์œผ๋กœ ์น ํ•ด์•ผ ํ•œ๋‹ค. ๊ฐ๊ฐ์˜ ์ง‘์„ ๋นจ๊ฐ•, ์ดˆ๋ก, ํŒŒ๋ž‘์œผ๋กœ ์น ํ•˜๋Š” ๋น„์šฉ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์•„๋ž˜ ๊ทœ์น™์„ ๋งŒ์กฑํ•˜๋ฉด์„œ ๋ชจ๋“  ์ง‘์„ ์น ํ•˜๋Š” ๋น„์šฉ์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•ด๋ณด์ž. 1๋ฒˆ ์ง‘์˜ ์ƒ‰์€ 2๋ฒˆ ์ง‘์˜ ์ƒ‰๊ณผ ๊ฐ™์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. N๋ฒˆ ์ง‘์˜ ์ƒ‰์€ N-1๋ฒˆ ์ง‘์˜ ์ƒ‰๊ณผ ๊ฐ™์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. i(2 ≤ i ≤ N-1)๋ฒˆ ์ง‘์˜ ์ƒ‰์€ i-1๋ฒˆ, i+1๋ฒˆ ์ง‘์˜ ์ƒ‰๊ณผ ๊ฐ™์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ง‘์˜ ์ˆ˜ N(2 ≤ N ≤ 1,000)์ด ..