๐ 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(.. ์ด์ 1 2 3 4 ๋ค์