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

๐Ÿ“• STUDY

(32)
[Node.js๋กœ ์„œ๋ฒ„๋งŒ๋“ค๊ธฐ] 2. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• (์˜ˆ์™ธ์ฒ˜๋ฆฌ) โœ… ์˜ค๋ฅ˜ VS ์˜ˆ์™ธ 1. ์˜ค๋ฅ˜(Error) vs ์˜ˆ์™ธ(Exception) - ์˜ค๋ฅ˜ : ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ, ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋“ฑ์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜์–ด ๋ณต๊ตฌํ•˜๊ธฐ ์‰ฝ์ง€ ์•Š์€ ์‹ฌ๊ฐํ•œ ์˜ค๋ฅ˜ - ์˜ˆ์™ธ : ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ์ˆ˜์Šตํ•  ์ˆ˜ ์žˆ์„ ์ •๋„์˜ ์‹ฌ๊ฐํ•˜์ง€ ์•Š์€ ์˜ค๋ฅ˜ โžก ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์„ ๋ง‰์„ ์ˆ˜ ์žˆ์Œ! 2. ์˜ˆ์™ธ ๋ฐœ์ƒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์— ์–ด๊ธ‹๋‚ฌ๊ฑฐ๋‚˜ ๋ฌธ๋ฒ•์€ ๋งž์ง€๋งŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋‚ด๋ถ€์— ์ •์˜๋˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋‚˜ ํ•จ์ˆ˜๋ฅผ ์ฐธ์กฐํ•  ๊ฒฝ์šฐ ์˜ˆ์™ธ ๋ฐœ์ƒ โžก ์ด๋•Œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ž์ฒด์ ์œผ๋กœ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒํ•จ 3. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ๊ทธ ๊ทœ์น™์—์„œ ์–ด๊ธ‹๋‚˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๋Š” ๊ฒƒ // sample 25 function sum(a,b){ if(typeof a !== 'number' || typeof y !== 'nu..
[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_..
[Node.js๋กœ ์„œ๋ฒ„๋งŒ๋“ค๊ธฐ] 2. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• (์ฝœ๋ฐฑ ํ•จ์ˆ˜/Promise/async/await) โœ… ์ฝœ๋ฐฑ ํ•จ์ˆ˜ ์ฝœ๋ฐฑ์ด๋ž€? ๋‚˜์ค‘์— ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ์˜ˆ์‹œ 1) A()๋ผ๋Š” ํ•จ์ˆ˜์— ์ธ์ž๋กœ ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ๋„ฃ์–ด์คŒ. (์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ํ•จ์ˆ˜๋Š” '์ผ๊ธ‰ ๊ฐ์ฒด'์ด๋ฏ€๋กœ ์ธ์ž๋กœ ํ•จ์ˆ˜๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•จ) 2) A ํ•จ์ˆ˜์˜ ๋ชจ๋“  ๋ช…๋ น์„ ์‹คํ–‰ํ•œ ํ›„ ๋งˆ์ง€๋ง‰์œผ๋กœ ๋„˜๊ฒจ ๋ฐ›์€ ์ธ์ž callback์„ ์‹คํ–‰ํ•จ. โžก ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด '์ฝœ๋ฐฑ'์ด๊ณ , ์—ฌ๊ธฐ์„œ ์ธ์ž๋กœ ๋“ค์–ด๊ฐ€๋Š” ํ•จ์ˆ˜๊ฐ€ '์ฝœ๋ฐฑ ํ•จ์ˆ˜' ๐Ÿ’ก ์šฉ์–ด ์ •๋ฆฌ ๐Ÿ’ก ์ผ๊ธ‰ ๊ฐ์ฒด : ๋‹ค๋ฅธ ๊ฐ์ฒด์— ์ผ๋ฐ˜์ ์œผ๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์„ ๋ชจ๋‘ ์ง€์›ํ•˜๋Š” ๊ฐ์ฒด ์ผ๊ธ‰ ๊ฐ์ฒด๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ์ธ์ž(ํŒŒ๋ผ๋ฏธํ„ฐ)๋กœ ๋„ฃ์„ ์ˆ˜ ์žˆ๊ณ , ๋ฐ˜ํ™˜ ๊ฐ’์œผ๋กœ๋„ ์“ฐ์ด๋ฉฐ, ๋ณ€์ˆ˜ ์•ˆ์— ๋„ฃ์„ ์ˆ˜๋„ ์žˆ์Œ. 1. ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ setTimeout(callback, delayTime) : ์ฝœ๋ฐฑ ํ•จ์ˆ˜์™€ ์ง€์ฒดํ•  ์‹œ๊ฐ„์„ ์ธ์ž๋กœ ๋ฐ›์•„, ์ธ์ž๋กœ ๋ฐ›์€ ์‹œ๊ฐ„๋งŒํผ ๊ธฐ๋‹ค๋ ธ..
[Node.js๋กœ ์„œ๋ฒ„๋งŒ๋“ค๊ธฐ] 2. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• (ํ”„๋กœํ† ํƒ€์ž…/์ƒ์†) โœ… ํ”„๋กœํ† ํƒ€์ž…(Prototype) 1. ํ”„๋กœํ† ํƒ€์ž…์ด๋ž€? - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ๊ฒƒ - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—๋Š” ํด๋ž˜์Šค๊ฐ€ ์—†์œผ๋ฏ€๋กœ 'ํ”„๋กœํ† ํƒ€์ž…'์„ ํ†ตํ•ด ๋น„์Šทํ•˜๊ฒŒ ํ‰๋‚ด๋ƒ„ (๋•Œ๋ฌธ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด๊ฐ€ ์•„๋‹Œ 'ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜ ์–ธ์–ด') 2. ํ”„๋กœํ† ํƒ€์ž…์„ ์ด์šฉํ•œ ๊ฐ์ฒด ์ƒ์„ฑ : prototype์€ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ ์ค‘ ์šฉ๋„๊ฐ€ ์•ฝ์†๋˜์–ด ์žˆ๋Š” ํŠน์ˆ˜ํ•œ ํ”„๋กœํผํ‹ฐ (์ด ์—ญ์‹œ ๊ฐ์ฒด!) โžก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ฒƒ์ด '๊ฐ์ฒด' โžก ๊ฐ์ฒด์˜ '์›ํ˜•'์ธ ํ”„๋กœํ† ํƒ€์ž…์„ ์ด์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ฐ์ฒด ์ƒ์„ฑ โžก ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋Š” ๋˜ ๋‹ค๋ฅธ ๊ฐ์ฒด์˜ ์›ํ˜•์ด ๋˜์–ด ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ function func(){}; console.log(func.prototype); // {} func.prot..
[Node.js๋กœ ์„œ๋ฒ„๋งŒ๋“ค๊ธฐ] 2. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•(๊ฐ์ฒด/๋ฐฐ์—ด/ํ•จ์ˆ˜) โœ… ๊ฐ์ฒด 1. ๊ฐ์ฒด๋ž€? ์šฐ๋ฆฌ๊ฐ€ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜๋‚˜์˜ ์นดํ…Œ๊ณ ๋ฆฌ ex) ๊ฐ์ฒด - ๋‚˜๋ผ '๋‚˜๋ผ'๋ผ๋Š” '๊ฐ์ฒด'๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ํŠน์ง•์€ ์ด๋ฆ„, ํฌ๊ธฐ, ์ธ๊ตฌ ์ˆ˜ ๋“ฑ์ด ์žˆ์Œ 2. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ ๊ฐ์ฒด๋ž€? ํ‚ค(key)์™€ ๊ฐ’(value)์˜ ์Œ์œผ๋กœ ์ด๋ค„์ง„ ํ”„๋กœํผํ‹ฐ(property)์˜ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ์ง‘ํ•ฉ ex) ๊ฐ์ฒด - ๋‚˜๋ผ '๋‚˜๋ผ'๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ํŠน์ง• = 'ํ”„๋กœํผํ‹ฐ' ์ด๋ฅผ ํ‚ค - ๊ฐ’ ์Œ์œผ๋กœ ๋งคํ•‘ํ•˜์—ฌ ์ €์žฅ // sample07 const country = { name: 'Korea', population: '5178579', get_name: function(){ return this.name; } }; console.log( country.name, country.population, country.get_name(..