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

๐Ÿ“• STUDY/Algorithm

(19)
[C / C++] ๋ฐฑ์ค€ 11651๋ฒˆ - ์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐ 2 https://www.acmicpc.net/problem/11651 11651๋ฒˆ: ์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐ 2 ์ฒซ์งธ ์ค„์— ์ ์˜ ๊ฐœ์ˆ˜ N (1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” i๋ฒˆ์ ์˜ ์œ„์น˜ xi์™€ yi๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (-100,000 ≤ xi, yi ≤ 100,000) ์ขŒํ‘œ๋Š” ํ•ญ์ƒ ์ •์ˆ˜์ด๊ณ , ์œ„์น˜๊ฐ€ ๊ฐ™์€ ๋‘ ์ ์€ ์—†๋‹ค. www.acmicpc.net โœ… ๋ฌธ์ œ ์„ค๋ช… ์ˆซ์ž N์„ ์ž…๋ ฅํ•œ ํ›„ N๊ฐœ์˜ x, y์ขŒํ‘œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, y์ขŒํ‘œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. โœ… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๋ช… y์ขŒํ‘œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋˜ y์ขŒํ‘œ๊ฐ€ ๊ฐ™์œผ๋ฉด x์ขŒํ‘œ๋ฅผ ๋น„๊ตํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ C++ STL sort()๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ’€์—ˆ๋‹ค. ๐Ÿ’ก sort() vector์— ์žˆ๋Š” ๊ฐ’์„ ์ •๋ ฌ..
[C / C++] ๋ฐฑ์ค€ 1003๋ฒˆ - ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜ https://www.acmicpc.net/problem/1003 1003๋ฒˆ: ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜ ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค 0์ด ์ถœ๋ ฅ๋˜๋Š” ํšŸ์ˆ˜์™€ 1์ด ์ถœ๋ ฅ๋˜๋Š” ํšŸ์ˆ˜๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค. www.acmicpc.net โœ… ๋ฌธ์ œ ์„ค๋ช… ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค T๋ฅผ ์ž…๋ ฅํ•œ ํ›„ T๊ฐœ์˜ ์ˆซ์ž N์„ ์ž…๋ ฅํ•˜๋ฉด, N์˜ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์—์„œ 0๊ณผ 1์ด ๋ช‡ ๋ฒˆ ์ถœ๋ ฅ๋˜๋Š”์ง€ ๋ฌป๋Š” ๋ฌธ์ œ์ด๋‹ค. โœ… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๋ช… 1. ์ผ๋ฐ˜ ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜ ์ฒ˜์Œ์—๋Š” C๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‰๋ฒ”ํ•œ ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. #define _CRT_SECURE_NO_WARNINGS #include #include int zero[40]; int one[40]; int fibonacci(int n, int i) { if (n == 0) { zero[i]++; return 0; }..
[์•Œ๊ณ ๋ฆฌ์ฆ˜] DP ๋™์ ๊ณ„ํš๋ฒ• โœ… ๋™์ ๊ณ„ํš๋ฒ•(DP) 1. ๋™์ ๊ณ„ํš๋ฒ•์ด๋ž€? - ํ•˜๋‚˜์˜ ํฐ ๋ฌธ์ œ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ํ‘ธ๋Š” ๋ฐฉ๋ฒ• - ์ด๋ฏธ ๊ณ„์‚ฐ๋œ ์ž‘์€ ๋ฌธ์ œ์˜ ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์ €์žฅํ•ด๋‘๊ณ  ํ™œ์šฉํ•จ. - ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰์‹œ๊ฐ„ ํšจ์œจ์„ฑ์„ ๋น„์•ฝ์ ์œผ๋กœ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ. ๋‹ต์„ ์žฌํ™œ์šฉํ•˜๋Š” ๊ฒƒ! "์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ๊ทธ ๋ฌธ์ œ๋ฅผ ๋” ์ž‘์€ ๋ฌธ์ œ์˜ ์—ฐ์žฅ์„ ์œผ๋กœ ์ƒ๊ฐํ•˜๊ณ , ๊ณผ๊ฑฐ์— ๊ตฌํ•œ ํ•ด๋ฅผ ํ™œ์šฉํ•˜๋Š”" ๋ฐฉ์‹์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 2. ๋™์ ๊ณ„ํš๋ฒ• ์‚ฌ์šฉ ์กฐ๊ฑด 1) ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Œ. 2) ์ž‘์€ ๋ฌธ์ œ์—์„œ ๊ตฌํ•œ ๊ฐ’์ด ๊ทธ๊ฒƒ์„ ํฌํ•จํ•˜๋Š” ํฐ ๋ฌธ์ œ์—์„œ๋„ ๋™์ผํ•œ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๋จ (ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด) โœ… ๋ถ„ํ• ์ •๋ณต๋ฒ• VS ๋™์ ๊ณ„ํš๋ฒ• ๊ณตํ†ต์  ํฐ ๋ฌธ์ œ๋ฅผ ์ชผ๊ฐœ์„œ ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•œ๋‹ค. ์ฐจ์ด์  - ๋ถ„ํ• ์ •๋ณต๋ฒ• : ๋ถ€๋ถ„ ๋ฌธ์ œ๋Š” ์„œ๋กœ ์ค‘๋ณต๋˜์ง€..
[C / C++] ๋ฐฑ์ค€ 10989๋ฒˆ - ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 3 https://www.acmicpc.net/problem/10989 10989๋ฒˆ: ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 3 ์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 10,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆ˜๋Š” 10,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. www.acmicpc.net โœ… ๋ฌธ์ œ ์„ค๋ช… ์ˆซ์ž N์„ ์ž…๋ ฅํ•œ ํ›„ N๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, N๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. โœ… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๋ช… 1. C++ STL sort() ์ฒ˜์Œ์—๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ C++ STL ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ ฌ์„ ํ–ˆ๋‹ค. #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; int main() { ios_base::sync_with_..
[C / C++] ๋ฐฑ์ค€ 1929๋ฒˆ - ์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ / ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด https://www.acmicpc.net/problem/1929 1929๋ฒˆ: ์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ ์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ M๊ณผ N์ด ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. (1 ≤ M ≤ N ≤ 1,000,000) M์ด์ƒ N์ดํ•˜์˜ ์†Œ์ˆ˜๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ ์žˆ๋Š” ์ž…๋ ฅ๋งŒ ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net โœ… ๋ฌธ์ œ ์„ค๋ช… ์ •์ˆ˜ M๊ณผ N์„ ์ž…๋ ฅํ•˜๋ฉด, M ~ N ์‚ฌ์ด์˜ ์†Œ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. โœ… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๋ช… ์ฒ˜์Œ์—๋Š” ๋‹จ์ˆœํ•˜๊ฒŒ ์ƒ๊ฐํ•˜์—ฌ, M ~ N์„ ์ฐจ๋ก€๋กœ ํ•˜๋‚˜์”ฉ ๋‚˜๋ˆ ์ง€๋Š” ์ˆ˜๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(N^2)์œผ๋กœ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๋ฌธ์ œ์—์„œ๋Š” '์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด' ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ๐Ÿ’ก ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด (Sieve of Eratosthenes) ๐Ÿ’ก ์†Œ์ˆ˜..
[C / C++] ๋ฐฑ์ค€ 11653๋ฒˆ - ์†Œ์ธ์ˆ˜๋ถ„ํ•ด https://www.acmicpc.net/problem/11653 11653๋ฒˆ: ์†Œ์ธ์ˆ˜๋ถ„ํ•ด ์ฒซ์งธ ์ค„์— ์ •์ˆ˜ N (1 ≤ N ≤ 10,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net โœ… ๋ฌธ์ œ ์„ค๋ช… ์ •์ˆ˜ N์„ ์ž…๋ ฅํ•˜๋ฉด, N์˜ ์†Œ์ธ์ˆ˜๋ถ„ํ•ด ๊ฒฐ๊ณผ๋ฅผ ์ž‘์€ ์ˆ˜๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. โœ… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๋ช… ์†Œ์ธ์ˆ˜๋ถ„ํ•ด์˜ ๊ฒฐ๊ณผ๋ฅผ ์ž‘์€ ์ˆ˜๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜์ธ 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ, ๋‚˜๋ˆ ์ง€์ง€ ์•Š์„ ๊ฒฝ์šฐ 1์”ฉ ๋”ํ•˜์—ฌ N์˜ ์†Œ์ธ์ˆ˜๋ฅผ ์ฐพ๋„๋ก ํ–ˆ๋‹ค. โœ… ์ฝ”๋“œ_C++
[C / C++] ๋ฐฑ์ค€ 2562๋ฒˆ - ์ตœ๋Œ“๊ฐ’ ๋ฐฑ์ค€ 2562๋ฒˆ : https://www.acmicpc.net/problem/2562 2562๋ฒˆ: ์ตœ๋Œ“๊ฐ’ 9๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์ž์—ฐ์ˆ˜๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์ด๋“ค ์ค‘ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ๊ณ  ๊ทธ ์ตœ๋Œ“๊ฐ’์ด ๋ช‡ ๋ฒˆ์งธ ์ˆ˜์ธ์ง€๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์„œ๋กœ ๋‹ค๋ฅธ 9๊ฐœ์˜ ์ž์—ฐ์ˆ˜ 3, 29, 38, 12, 57, 74, 40, 85, 61 ์ด ์ฃผ์–ด www.acmicpc.net โœ… ๋ฌธ์ œ ์„ค๋ช… ์ด 9๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๊ทธ ์ค‘ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ๊ณ , ์ตœ๋Œ“๊ฐ’์ด ๋ช‡ ๋ฒˆ์งธ ์ˆ˜์ธ์ง€ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. โœ… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๋ช… ๐Ÿ›  C์˜ ๊ฒฝ์šฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž…๋ ฅํ•  ๋•Œ๋งˆ๋‹ค max ๊ฐ’๊ณผ ๋น„๊ตํ•˜์—ฌ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์ฐพ์•˜๊ณ , ๊ฐ€์žฅ ํฐ ์ˆ˜์ผ ๊ฒฝ์šฐ ์ธ๋ฑ์Šค ๊ฐ’๊นŒ์ง€ ์ €์žฅํ•˜๋„๋ก ํ–ˆ๋‹ค. ๐Ÿ›  C++์˜ ๊ฒฝ์šฐ *max_element / max_element ํ•จ์ˆ˜ ์‚ฌ์šฉ! 1. ๊ฐ€์žฅ..
[C / C++] ๋ฐฑ์ค€ 1244๋ฒˆ - ์Šค์œ„์น˜ ์ผœ๊ณ  ๋„๊ธฐ ๋ฐฑ์ค€ 1748๋ฒˆ : https://www.acmicpc.net/problem/1244 1244๋ฒˆ: ์Šค์œ„์น˜ ์ผœ๊ณ  ๋„๊ธฐ ์ฒซ์งธ ์ค„์—๋Š” ์Šค์œ„์น˜ ๊ฐœ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์Šค์œ„์น˜ ๊ฐœ์ˆ˜๋Š” 100 ์ดํ•˜์ธ ์–‘์˜ ์ •์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ๊ฐ ์Šค์œ„์น˜์˜ ์ƒํƒœ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ผœ์ ธ ์žˆ์œผ๋ฉด 1, ๊บผ์ ธ์žˆ์œผ๋ฉด 0์ด๋ผ๊ณ  ํ‘œ์‹œํ•˜๊ณ  ์‚ฌ์ด์— ๋นˆ์นธ์ด ํ•˜๋‚˜์”ฉ www.acmicpc.net โœ… ๋ฌธ์ œ ์„ค๋ช… ๋จผ์ € ์Šค์œ„์น˜ ๊ฐœ์ˆ˜ N์„ ์ž…๋ ฅํ•˜๊ณ , ์Šค์œ„์น˜ N๊ฐœ์˜ ์ƒํƒœ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. (์ƒํƒœ 1 - ์ผœ์ง / 0 - ๊บผ์ง) ๊ทธ ํ›„ ๋ฝ‘์„ ํ•™์ƒ์˜ ์ˆ˜ M์„ ์ž…๋ ฅํ•˜๊ณ , ํ•™์ƒ์˜ ์„ฑ๋ณ„๊ณผ ์ง€์ • ์ˆซ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ์ž…๋ ฅํ•œ๋‹ค. (1 - ๋‚จ์ž / 2 - ์—ฌ์ž) ๐ŸŒˆ ๋‚จํ•™์ƒ์˜ ์Šค์œ„์น˜ ๋ณ€๊ฒฝ๋ฐฉ๋ฒ• ์ง€์ • ์ˆซ์ž์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋˜๋Š” ์ˆซ์ž์˜ ์Šค์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค. ex) ์ง€์ •์ˆซ์ž = 3 โฉ (3, 6, 9 ... < N) ..