diff --git a/assets/image_1762505372788_0.png b/assets/image_1762505372788_0.png new file mode 100644 index 0000000..866702a Binary files /dev/null and b/assets/image_1762505372788_0.png differ diff --git a/assets/image_1762505444818_0.png b/assets/image_1762505444818_0.png new file mode 100644 index 0000000..4e24194 Binary files /dev/null and b/assets/image_1762505444818_0.png differ diff --git a/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ.md b/logseq/.recycle/pages_πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ.md similarity index 78% rename from pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ.md rename to logseq/.recycle/pages_πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ.md index d152a06..df0095f 100644 --- a/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ.md +++ b/logseq/.recycle/pages_πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ.md @@ -3,17 +3,17 @@ deck:: Logseq/coding tip - ## **❖ Javascript / Typescript** - ### **β–Ί 이차원 λ°°μ—΄(n*m) 생성** - id:: 6867f897-928a-4f22-8184-491fa70314db - 1. Array.from() μ‚¬μš©λ²• #card + 1. Array.from() μ‚¬μš©λ²• - ```javascript const arr = Array.from({length : n}, () => new Array(m).fill(0)); ``` - id:: 6867f8fc-3249-4ced-91aa-a2c951c11b0b - 2. Array().fill() μ‚¬μš©λ²• #card + 2. Array().fill() μ‚¬μš©λ²• - ```javascript const arr = new Array(n).fill().map(() => new Array(m).fill(0)); ``` - id:: 6867f8fe-39c6-438b-a045-4f8687ad0b1d - 3. 반볡문 순회 #card + 3. 반볡문 순회 - ```javascript let arr = []; for(int i=0; i {쑰건식})** #card + - ### **β—ΌοΈŽ Array.every((element, index, array) => {쑰건식})** id:: 686922a8-1c72-4261-8339-aff6ece36f03 - **λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œκ°€ 쑰건식을 λ§Œμ‘±ν•˜λŠ”μ§€ ν™•μΈν•΄μ„œ true/falseλ₯Ό λ°˜ν™˜ν•˜λŠ” λ§€μ„œλ“œ** - **elememt : ν˜„μž¬ μš”μ†Œ, index : ν˜„μž¬ 인덱슀(μƒλž΅κ°€λŠ₯), array : 원본 λ°°μ—΄(μƒλž΅ κ°€λŠ₯)** @@ -43,7 +43,7 @@ deck:: Logseq/coding tip }); // true arr.every(v => v===arr[0]); // false ``` - - ### **β—ΌοΈŽ Array.slice(start_idx, end_idx)** #card + - ### **β—ΌοΈŽ Array.slice(start_idx, end_idx)** id:: 68692600-551c-488b-ad74-de8145729133 - **λ°°μ—΄μ—μ„œ νŠΉμ • λ²”μœ„μ˜ 인덱슀 λΆ€λΆ„λ§Œ μž˜λΌλ‚΄μ„œ κ·Έ 배열을 λ°˜ν™˜ν•˜λŠ” λ§€μ„œλ“œ** - **end_idxλŠ” μƒλž΅ κ°€λŠ₯ν•˜λ‹€** @@ -59,7 +59,7 @@ deck:: Logseq/coding tip const arr2 = arr.slice(5,10); // [5,6,7,8,9] const arr3 = arr.slice(12); // [] ``` - - ### **β—ΌοΈŽ Array.forEach((element, index, array) => {})** #card + - ### **β—ΌοΈŽ Array.forEach((element, index, array) => {})** id:: 6869280c-f685-44c4-b73e-a33f351be582 - **λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό μˆœμ„œλŒ€λ‘œ μˆœνšŒν•˜λ©΄μ„œ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λŠ” λ§€μ„œλ“œ** - **element(ν˜„μž¬ μš”μ†Œ)λŠ” λ°˜λ“œμ‹œ ν•„μš”ν•˜κ³ , index(ν˜„μž¬ 인덱슀)와 array(원본 λ°°μ—΄)λŠ” μƒλž΅ κ°€λŠ₯ν•˜λ‹€.** @@ -75,7 +75,7 @@ deck:: Logseq/coding tip }); // 1 2 4 5 ``` - - ### **β—ΌοΈŽ Array.reduce((acc, element, index) => {μ½œλ°±ν•¨μˆ˜}, initial value)** #card + - ### **β—ΌοΈŽ Array.reduce((acc, element, index) => {μ½œλ°±ν•¨μˆ˜}, initial value)** id:: 6869298b-18fd-4524-a697-c1af9e510c34 - **λ°°μ—΄μ˜ 각 μš”μ†Œλ³„λ‘œ μˆœνšŒν•˜λ©° λˆ„μ μž(acc)λ₯Ό κ³„μ‚°ν•˜κ³  λͺ¨λ“  순회λ₯Ό 마친 λ’€μ˜ λˆ„μ μžλ₯Ό λ°˜ν™˜ν•˜λŠ” λ§€μ„œλ“œ** - **μ΄ˆκΈ°κ°’μ„ μž…λ ₯ν•˜μ§€ μ•ŠμœΌλ©΄ 기본적으둜 accλŠ” 0으둜 μ΄ˆκΈ°ν™” 된 채 μ‹€ν–‰λœλ‹€.** @@ -88,7 +88,7 @@ deck:: Logseq/coding tip else return acc+v; },0); //9 ``` - - ### **β—ΌοΈŽ Array.sort((a,b)=>{μ½œλ°±ν•¨μˆ˜})** #card + - ### **β—ΌοΈŽ Array.sort((a,b)=>{μ½œλ°±ν•¨μˆ˜})** id:: 686a6dfd-328e-4dd0-bd8a-abbef2ae13ee - **배열을 μ •λ ¬ν•˜λŠ” λ§€μ„œλ“œμ΄κ³  기본적으둜 νŒŒλΌλ―Έν„°λ₯Ό μž…λ ₯ν•˜μ§€ μ•ŠμœΌλ©΄ μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬ν•œλ‹€.** - **λ°˜ν™˜κ°’μ€ μ—†κ³  원본 λ°°μ—΄ 자체λ₯Ό λ³€κ²½ν•œλ‹€.** @@ -106,14 +106,86 @@ deck:: Logseq/coding tip arr.sort((a-b)=>b-a); //[9,8,7,5,4,3,2] λ‚΄λ¦Όμ°¨μˆœ // 이전 인덱슀 μš”μ†Œμ™€ λ‹€μŒ 인덱슀 μš”μ†Œμ˜ 차이가 λͺ¨λ‘ μŒμˆ˜κ°€ μ•„λ‹ˆκ²Œ λ˜λ„λ‘ μ •λ ¬ν•œλ‹€ ``` + - ### **β–Ί Object μžλ£Œν˜•** + - ### **β—ΌοΈŽ μ •μ˜ 및 μ„ μ–Έ 및 접근방법** + id:: 6874a753-d361-4df8-8dd5-15bb865ac8df + - ν‚€(key)와 κ°’(value)을 κ°€μ§€λŠ” λ°μ΄ν„°μ˜ μ§‘ν•© + - μžμ²΄μ μœΌλ‘œλŠ” iterableν•˜μ§€ μ•ŠμŒ(λ°˜λ³΅κ°€λŠ₯ν•œ μžλ£Œν˜•μ΄ μ•„λ‹˜) + - λ”°λΌμ„œ forλ¬Έμ—μ„œ μˆœνšŒν•  λ•Œ for ... in Object.keys(), Object.values(), Object.entries() 와 같은 λ°©λ²•μœΌλ‘œ μˆœνšŒν•΄μ•Όν•¨ + - ν‚€λŠ” 무쑰건 λ¬Έμžμ—΄κ³Ό μ‹¬λ³Όλ§Œ κ°€λŠ₯함. + - ν‚€μ˜ μ‚½μž… μˆœμ„œκ°€ 보μž₯λ˜μ§€ μ•ŠμŒ. + - ```javascript + // λΉˆλ°μ΄ν„° μ΄ˆκΈ°ν™” 방법 + let obj = {}; + + // 직접 μ„ μ–Έ 방법 + let obj = { + "name": "Yechan", + "age" : 30 + }; + + // 좜λ ₯ + console.log(obj.name); + console.log(obj["age"]); + // Yechan + // 30 + // 두 방법 λͺ¨λ‘ μ‚¬μš© κ°€λŠ₯ + ``` + - ### **β—ΌοΈŽ ν‚€ 및 κ°’ 순회** + - **for ... in** + id:: 6874a966-4831-47ed-b969-a7d6d6269a9b + - 기본적으둜 Object의 킀값을 μˆœνšŒν•¨. + - ```javascript + let obj = { + "name": "Yechan", + "age" : 30 + }; + + for(let key in obj){ + console.log(obj[key]); + } + ``` + - **for ... of** + id:: 6874a9fd-e3da-475b-95d8-06889eb8ce56 + - 각 객체의 λ§€μ„œλ“œλ₯Ό 톡해 ν‚€, κ°’, ν˜Ήμ€ λ‘˜ λ‹€λ₯Ό 직접 κ°€μ Έμ™€μ„œ μˆœνšŒν•΄μ•Όν•¨. + - ```javascript + let obj = { + "name": "Yechan", + "age" : 30 + }; + + for key of Object.keys(obj) { + console.log(key, obj[key]); + } + // name Yechan + // age 30 + + // key, value 순회 + for [key, value] of Object.entries(obj) { + console.log(key, value); + } + // name Yechan + // age 30 + ``` + - ### **β–Ί λ°˜λ³΅κ°€λŠ₯ κ°μ²΄μ—μ„œμ˜ 순회** + - ### **β—ΌοΈŽ 일반적인 방법(forλ¬Έ)** + id:: 6874a69f-d252-4666-813b-17e1e2b50101 + - forλ¬Έμ—μ„œ of둜 ν•˜λ‚˜μ”© μˆœνšŒν•¨ + - ```javascript + const num = [1,2,3,4,5]; + for(let n of num) { + console.log(n); + } + // 1 2 3 4 5 + ``` - ## **❖ Python** - - ### **β–Ί 이차원 λ°°μ—΄(n*m) 생성** #card + - ### **β–Ί 이차원 λ°°μ—΄(n*m) 생성** id:: 6867f994-13d0-4937-90e9-d8aec7be5d67 - ```python arr = [[0]*m for _ in range(n)] ``` - ### **β–Ί λ°°μ—΄ κ΄€λ ¨ λ§€μ„œλ“œ** - - ### **β—ΌοΈŽ arr.count(value)** #card + - ### **β—ΌοΈŽ arr.count(value)** id:: 686a721d-df2e-4662-a6dd-c235cce8c5ac - 리슀트, ν˜Ήμ€ λ¬Έμžμ—΄μ—μ„œ νŠΉμ • κ°’μ˜ 개수λ₯Ό λ°˜ν™˜ν•˜λŠ” λ§€μ„œλ“œ - ```python @@ -128,7 +200,7 @@ deck:: Logseq/coding tip print(arr.count(3)) # 3 print(arr.count(4)) # 4 ``` - - ### **β—ΌοΈŽ arr.sort()** #card + - ### **β—ΌοΈŽ arr.sort()** id:: 686a726b-38e3-4adc-836a-2d0856046e73 - 원본 λ°°μ—΄ 자체λ₯Ό μ •λ ¬ν•˜λŠ” λ§€μ„œλ“œ. - 기본값은 μ˜€λ¦„μ°¨μˆœμ΄κ³  νŒŒλΌλ―Έν„°μ— reverse=True λ₯Ό ν•˜λ©΄ λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ 정렬됨. @@ -139,7 +211,7 @@ deck:: Logseq/coding tip arr.sort() # 2 4 5 8 9 arr.sort(reverse=True) # 9 8 5 4 2 ``` - - ### **β—ΌοΈŽ sorted(arr)** #card + - ### **β—ΌοΈŽ sorted(arr)** id:: 686a732c-734e-417c-b7e2-f3bfb8caa71b - λ³€μˆ˜λ‘œ λ“€μ–΄μ˜¨ 배열을 μ •λ ¬ν•œ λ’€ κ·Έ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•˜λŠ” λ§€μ„œλ“œ, 즉 λ°˜ν™˜κ°’μ΄ λ°°μ—΄μž„. - 기본값은 μ˜€λ¦„μ°¨μˆœμ΄κ³  νŒŒλΌλ―Έν„°μ— reverse=True λ₯Ό ν•˜λ©΄ λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ 정렬됨. @@ -156,14 +228,14 @@ deck:: Logseq/coding tip - ## **❖ ν”„λ‘œκ·Έλž˜λ° κ΄€λ ¨ 이둠 정리** - ### **β–Ί μ•Œκ³ λ¦¬μ¦˜** - ### **β—ΌοΈŽ μ§„μˆ˜λ³€ν™˜ μ•Œκ³ λ¦¬μ¦˜** - - β—‰ **Bμ§„μˆ˜ 숫자 N을 10μ§„μˆ˜λ‘œ λ°”κΎΈκΈ°(λˆ„μ κ³±)** #card + - β—‰ **Bμ§„μˆ˜ 숫자 N을 10μ§„μˆ˜λ‘œ λ°”κΎΈκΈ°(λˆ„μ κ³±)** id:: 687250f4-c492-4481-90b4-2894f302b02d - μ΅œμ’… λ³€ν™˜ κ²°κ³Ό result λ₯Ό 0으둜 μ΄ˆκΈ°ν™” - Bμ§„μˆ˜ 숫자 N의 κ°€μž₯ μ™Όμͺ½μžλ¦¬λΆ€ν„° ν•œμžλ¦¬μ”© μˆœνšŒν•˜λ©΄μ„œ μ§„ν–‰ - μˆœνšŒν•˜λ©° 읽은 값을 10μ§„μˆ˜λ‘œ λ°”κΏˆ(10 μ΄μƒμ˜ μˆ˜λŠ” A=10, B=11 λ“±λ“±), 이 값을 val둜 μ§€μ • - result = result*B + val - λͺ¨λ“  μžλ¦¬μˆ˜μ— λŒ€ν•΄ μˆ˜ν–‰ν•˜κ³  λ‚˜λ©΄ μ΅œμ’…μ μœΌλ‘œ result에 10μ§„μˆ˜λ‘œ λ³€ν™˜λœ μˆ«μžκ°€ λ‚˜μ˜΄. - - β—‰ **10μ§„μˆ˜ 숫자 N을 Bμ§„μˆ˜λ‘œ λ°”κΎΈκΈ°(λ‚˜λ¨Έμ§€ 계산법)** #card + - β—‰ **10μ§„μˆ˜ 숫자 N을 Bμ§„μˆ˜λ‘œ λ°”κΎΈκΈ°(λ‚˜λ¨Έμ§€ 계산법)** id:: 6872521b-6fe5-4b65-a929-38c176052368 - μ΅œμ’… λ³€ν™˜ κ²°κ³Ό result λ₯Ό λ°°μ—΄λ‘œμ„œ μ΄ˆκΈ°ν™” - N이 0이 될 λ•ŒκΉŒμ§€ λ°˜λ³΅λ¬Έμ„ 돌림 @@ -173,7 +245,7 @@ deck:: Logseq/coding tip - N = N//B - result 배열을 맨 λ§ˆμ§€λ§‰ μΈλ±μŠ€λΆ€ν„° μ—­μˆœμœΌλ‘œ 읽으면 그것이 μ΅œμ’… λ³€ν™˜ κ²°κ³Ό. - ### **β—ΌοΈŽ μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•(μ΅œμ†Œκ³΅λ°°μˆ˜, μ΅œλŒ€κ³΅μ•½μˆ˜ κ΅¬ν•˜κΈ°)** - - β—‰ **μ΅œλŒ€κ³΅μ•½μˆ˜(GCD) κ΅¬ν•˜κΈ°** #card #depth-2 + - β—‰ **μ΅œλŒ€κ³΅μ•½μˆ˜(GCD) κ΅¬ν•˜κΈ°** id:: 687253f3-7eb2-421e-b8c0-d9b96d4d7323 - μž…λ ₯ν•œ 두 수의 μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό κ΅¬ν•˜λŠ” ν•¨μˆ˜ GCDμ—μ„œ μ•„λž˜μ˜ 두 곡식이 μ„±λ¦½ν•œλ‹€. - GCD(a, b) = GCD(b, a % b) @@ -183,7 +255,7 @@ deck:: Logseq/coding tip - 2. a-b, b=r 둜 κ°’ κ°±μ‹  - 3. b = 0이면, aκ°€ μ΅œλŒ€κ³΅μ•½μˆ˜ - 4. b != 0이면 λ‹€μ‹œ 1λ²ˆλΆ€ν„° μ‹€ν–‰ - - μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²• gcd μ˜ˆμ‹œμ½”λ“œ #card + - μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²• gcd μ˜ˆμ‹œμ½”λ“œ id:: 687255f3-27a7-4bef-a684-60daab2fa33f - μž¬κ·€λ°©μ‹ - ```python @@ -197,12 +269,12 @@ deck:: Logseq/coding tip a, b = b, a%b return a ``` - - β—‰ **μ΅œμ†Œκ³΅λ°°μˆ˜(LCM) κ΅¬ν•˜κΈ°** #card + - β—‰ **μ΅œμ†Œκ³΅λ°°μˆ˜(LCM) κ΅¬ν•˜κΈ°** id:: 687256b1-be35-4052-a12e-133e2c3b2f50 - 두 수 a,b와 κ·Έ 수의 μ΅œλŒ€κ³΅μ•½μˆ˜(GCD)λ₯Ό μ•Œλ©΄ a,b의 μ΅œμ†Œκ³΅λ°°μˆ˜(LCM)λŠ” λ‹€μŒκ³Ό κ°™λ‹€. - LCM = (a * b) / GCD - ### **β–Ί μ‚¬μ†Œν•œ ν…Œν¬λ‹‰** - - ### **β—ΌοΈŽ μ†Œμˆ˜μ  올림 μ—°μ‚°(ceil)** #card + - ### **β—ΌοΈŽ μ†Œμˆ˜μ  올림 μ—°μ‚°(ceil)** id:: 68725357-aae4-4805-9550-21927cf3731a - λŒ€λΆ€λΆ„μ˜ μ–Έμ–΄μ—λŠ” ceilμ΄λΌλŠ” μ˜¬λ¦Όμ—°μ‚° λ©”μ„œλ“œλ₯Ό μ§€μ›ν•˜μ§€λ§Œ μ‚¬μš©ν•  수 μ—†λŠ” ν™˜κ²½μΌ κ²½μš°μ—λŠ” λ‹€μŒκ³Ό 같이 κ³„μ‚°ν•œλ‹€. - ```python diff --git a/pages/C.md b/pages/C.md new file mode 100644 index 0000000..d85a6d5 --- /dev/null +++ b/pages/C.md @@ -0,0 +1,7 @@ +deck:: Logseq/coding tip + +- ## **β–Ί Cμ–Έμ–΄ λ³€μˆ˜νƒ€μž… 크기 정리** + - ![image.png](../assets/image_1749986661502_0.png) #card + id:: 690f2348-194d-46ec-bf5c-855c25c28cd5 + - ![image.png](../assets/image_1749986614051_0.png) +- \ No newline at end of file diff --git a/pages/Java.md b/pages/Java.md new file mode 100644 index 0000000..eac0385 --- /dev/null +++ b/pages/Java.md @@ -0,0 +1,3 @@ +deck:: Logseq/coding tip + +- \ No newline at end of file diff --git a/pages/Python.md b/pages/Python.md new file mode 100644 index 0000000..ddbc362 --- /dev/null +++ b/pages/Python.md @@ -0,0 +1,92 @@ +deck:: Logseq/coding tip + +- ## **β–Ί 이차원 λ°°μ—΄(n*m) 생성** #card + id:: 690daa52-9b76-4367-bcf3-386b33637eb0 + - ```python + arr = [[0]*m for _ in range(n)] + ``` +- ## **β–Ί lambda(λžŒλ‹€) ν•¨μˆ˜** + - ### **β—ΌοΈŽ μ •μ˜** #card + id:: 690daba5-24c2-4cdc-9373-3e1924b96cb7 + - νŒŒμ΄μ¬μ—μ„œ 이름이 μ—†λŠ” 읡λͺ… ν•¨μˆ˜λ₯Ό λ§Œλ“œλŠ”λ° μ‚¬μš©λ˜λŠ” ν‚€μ›Œλ“œ + - def ν‚€μ›Œλ“œλ‘œ μ •μ‹μœΌλ‘œ μ •μ˜λ˜λŠ” ν•¨μˆ˜λ³΄λ‹€ 훨씬 κ°„κ²°ν•˜κ²Œ, κ°„λ‹¨ν•œ ν•¨μˆ˜λ₯Ό λ§Œλ“€ λ•Œ μ‚¬μš©λ¨ + - ### **β—ΌοΈŽ 핡심 κ°œλ…** #card + id:: 690dae10-920a-4ce0-a098-c9053307f872 + - 이름이 μ—†λ‹€ : λ³€μˆ˜μ— ν• λ‹Ήν•˜μ—¬ μ‚¬μš©ν•  μˆ˜λŠ” μžˆμ§€λ§Œ ν•¨μˆ˜ μžμ²΄μ—λŠ” 이름이 μ—†λ‹€. + - μΌνšŒμ„± : 주둜 λ‹€λ₯Έ ν•¨μˆ˜μ˜ 인자둜 μ „λ‹¬λ˜μ–΄ ν•œ 번만 μ‚¬μš©λ˜κ³  μ‚¬λΌμ§€λŠ” μš©λ„λ‘œ 많이 쓰인닀. + - λ³€μˆ˜μ— ν• λ‹Ήν•΄μ„œ μ—¬λŸ¬λ²ˆ μ‚¬μš©μ€ κ°€λŠ₯ν•˜μ§€λ§Œ 주된 μ‚¬μš©λ²•μ΄ μ•„λ‹ˆκ³  ꢌμž₯λ˜μ§€λ„ μ•ŠλŠ”λ‹€. + - 간결함 : λ³΅μž‘ν•œ 둜직이 μ•„λ‹Œ, κ°„λ‹¨ν•œ 연산을 μˆ˜ν–‰ν•˜λŠ” ν•¨μˆ˜λ₯Ό λΉ λ₯΄κ²Œ μ •μ˜ν•  수 μžˆλ‹€. + - ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ λ³€μˆ˜λ₯Ό ν• λ‹Ήν•˜κ±°λ‚˜ μ—¬λŸ¬ μ€„μ˜ λ³΅μž‘ν•œ λ¬Έμž₯을 μ‚¬μš©ν•  수 μ—†κ³  였직 ν•˜λ‚˜μ˜ ν‘œν˜„μ‹λ§Œ ν—ˆμš©λœλ‹€. + - ### **β—ΌοΈŽ ꡬ문** #card + id:: 690dae7c-8d83-4eed-99d6-40f83ec11494 + - ```python + lambda 인자1, 인자2, ... : ν•¨μˆ˜μ •μ˜ + # 인자의 κ°œμˆ˜κ°€ μ—¬λŸ¬κ°œλΌλ©΄ μ—¬λŸ¬κ°œλ₯Ό 콜둠으둜 κ΅¬λΆ„ν•΄μ„œ μ­‰ λ‚˜μ—΄ν•œλ‹€ + # μΈμžλ“€μ„ λ‚˜μ—΄ν•œ λ’€ 콜둠으둜 κ΅¬λΆ„ν•œ λ’€ 뒀에 ν•¨μˆ˜λ₯Ό μ •μ˜ν•œλ‹€. + + # λ³€μˆ˜λ‘œ ν• λ‹Ήν•˜κΈ° + add_lambda = lambda x, y : x+y + print(add_lambda(1,2)) # 3 + + # κ³ μ°¨ν•¨μˆ˜μ— 인자둜 μ „λ‹¬ν•΄μ„œ μ„ μ–Έν•˜κΈ° + nums = [1,2,3,4,5] + evens = list(filter(lambda x: x % 2 == 0, nums)) + print(evens) # [2,4] + ``` +- ## **β–Ί μœ ν‹Έ ν•¨μˆ˜ λͺ¨μŒ** + - ### **β—ΌοΈŽ μ •λ ¬ν•¨μˆ˜ (sort, sorted)** + - **β—‰ sort() vs. sorted() 간단 비ꡐ** + - ![image.png](../assets/image_1762505444818_0.png) #card + id:: 690db22d-8f77-40b6-8d9a-64fe17f33459 + - ![image.png](../assets/image_1762505372788_0.png) + - **β—‰ μ‚¬μš© 인자** + - reverse #card + id:: 690db312-4c67-4fb8-b41a-7c136b2b9f73 + - 이 ν‚€μ›Œλ“œκ°€ True이면 λ‚΄λ¦Όμ°¨μˆœ, Falseλ©΄ μ˜€λ¦„μ°¨μˆœμœΌλ‘œ 정렬함 + - 기본값은 False이고 λ”°λΌμ„œ λ”°λ‘œ μ§€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ 기본적으둜 μ˜€λ¦„μ°¨μˆœμœΌλ‘œ λ™μž‘ν•¨. + - ```python + numbers = [3, 1, 4, 1, 5, 9] + numbers_reverse = [3, 1, 4, 1, 5, 9] + + numbers.sort() # [1,1,3,4,5,9] + numbers.sort(reverse=True) # [9,5,4,3,1,1] + ``` + - key #card + id:: 690db41f-a507-4ce3-93cb-57f749174d01 + - μ •λ ¬μ˜ 기쀀을 μ§€μ •ν•˜λŠ” ν•¨μˆ˜λ₯Ό 인자둜 λ°›μŒ + - 리슀트의 λͺ¨λ“  μΈμžμ— λŒ€ν•΄ 이 key에 λ“€μ–΄κ°„ ν•œμˆ˜λ₯Ό ν•œλ²ˆμ”© μž…λ ₯으둜 λ“€μ–΄κ°„ λ’€ 이에 λŒ€ν•œ λΉ„κ΅μš© κ°’(proxy value)을 κ³„μ‚°ν•΄μ„œ λ°˜ν™˜ν•¨. + - 이 λ°˜ν™˜λœ 값을 κΈ°μ€€μœΌλ‘œ μ˜€λ¦„μ°¨μˆœ(reverse=True의 κ²½μš°μ—λŠ” λ‚΄λ¦Όμ°¨μˆœ)으둜 정렬함 + - key에 μ „λ‹¬λ˜λŠ” ν•¨μˆ˜λŠ” λ‹€μŒκ³Ό κ°™λ‹€ + - len, abs, str λ“± λ‚΄μž₯ν•¨μˆ˜ + - lambdaλ₯Ό ν™œμš©ν•œ λ³΅μž‘ν•œ κ°μ²΄λ‚˜ νŠΉμ • 쑰건에 λŒ€ν•œ 정렬기쀀을 μ •μ˜ + - def둜 μ •μ˜λœ ν•¨μˆ˜λ‘œ 정렬기쀀이 λ³΅μž‘ν•˜κ³  μ—¬λŸ¬μ€„μ˜ μ½”λ“œκ°€ ν•„μš”ν•  λ•Œ μ‚¬μš© + - key에 μ „λ‹¬λœ ν•¨μˆ˜λŠ” 단일 κ°’, ν˜Ήμ€ νŠœν”Œν˜•νƒœμ˜ λ°˜ν™˜κ°’μ„ κ°€μ Έμ•Ό ν•œλ‹€. + - νŠœν”Œν˜•νƒœλΌλ©΄ μ•ž μš”μ†ŒλΆ€ν„° 기쀀에 맞게 μ •λ ¬ν•˜κ³  같을 경우 κ·Έ λ‹€μŒ μš”μ†Œλ₯Ό λΉ„κ΅ν•΄μ„œ μ •λ ¬ν•œλ‹€. + - 예제 λͺ¨μŒ + - ```python + # 곡톡 예제 데이터 + players = [ + {'name': 'Son', 'team': 'Tottenham', 'goals': 23, 'assists': 7}, + {'name': 'Kane', 'team': 'Tottenham', 'goals': 17, 'assists': 9}, + {'name': 'Salah', 'team': 'Liverpool', 'goals': 23, 'assists': 13}, + {'name': 'De Bruyne', 'team': 'Man City', 'goals': 15, 'assists': 8}, + {'name': 'Mane', 'team': 'Liverpool', 'goals': 16, 'assists': 2}, + {'name': 'Jota', 'team': 'Liverpool', 'goals': 15, 'assists': 4}, + ] + ``` + - 이름 κΈ°μ€€ μ‚¬μ „μˆœ μ •λ ¬ #card + id:: 690dcc7a-cd85-428a-a734-337df0430ef6 + - ```python + players.sort(key=lambda p: p['name']) + ``` + - 득점(goals) κΈ°μ€€ λ‚΄λ¦Όμ°¨μˆœ μ •λ ¬ #card + id:: 690dccf5-9182-401f-84c7-95f9c44d14de + - ```python + players.sort(key=lambda p: -p['goals']) + ``` + - 곡격포인트(goals + assists) κ°’ κΈ°μ€€ λ‚΄λ¦Όμ°¨μˆœ, κ°™λ‹€λ©΄ νŒ€ 이름 μ‚¬μ „μˆœ, νŒ€μ΄ κ°™λ‹€λ©΄ μ„ μˆ˜ 이름 μ‚¬μ „μˆœ #card + id:: 690dcd55-e279-4f3f-a75f-579d0612bfef + - ```python + players.sort(key=lambda p: (-(p['goals'] + p['assists']), p['team'], p['name'])) + ``` + - \ No newline at end of file diff --git a/pages/Swift.md b/pages/Swift.md new file mode 100644 index 0000000..eac0385 --- /dev/null +++ b/pages/Swift.md @@ -0,0 +1,3 @@ +deck:: Logseq/coding tip + +- \ No newline at end of file diff --git a/pages/javascript_typescript.md b/pages/javascript_typescript.md new file mode 100644 index 0000000..df96edb --- /dev/null +++ b/pages/javascript_typescript.md @@ -0,0 +1,148 @@ +deck:: Logseq/coding tip + +- ## **β–Ί 이차원 λ°°μ—΄(n*m) 생성** + id:: 6909ee5d-6a76-4db6-9192-4c63f0f9d9fe + - id:: 6909ee5c-3008-4d05-b2aa-98f80c7081b6 + 1. Array.from() μ‚¬μš©λ²• #card + - ```javascript + const arr = Array.from({length : n}, () => new Array(m).fill(0)); + ``` + - id:: 6909ee7c-8b96-4dda-a325-3bcccca6be17 + 2. Array().fill() μ‚¬μš©λ²• #card + - ```javascript + const arr = new Array(n).fill().map(() => new Array(m).fill(0)); + ``` +- ## **β–Ί κ³ μ°¨ν•¨μˆ˜ 및 λ§€μ„œλ“œ 정리** + - ### **β—ΌοΈŽ κ³ μ°¨ν•¨μˆ˜ μ •μ˜** #card + id:: 6909efa6-f92a-466d-89bb-30efd050c04a + - λ‹€λ₯Έ ν•¨μˆ˜λ₯Ό 인자둜 λ°›κ±°λ‚˜ ν•¨μˆ˜λ₯Ό 결과둜 λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜ + - μžλ°”μŠ€ν¬λ¦½νŠΈ(νƒ€μž…μŠ€ν¬λ¦½νŠΈ)μ—μ„œλŠ” ν•¨μˆ˜λ„ 일급 객체둜 μ·¨κΈ‰ν•˜κΈ°μ— κ°€λŠ₯ν•œ κ²°κ³Ό + - ### **β—ΌοΈŽ μ½œλ°±ν•¨μˆ˜ μ •μ˜** #card + id:: 690c632e-7008-4113-b8c7-a1dae66a5449 + - κ³ μ°¨ ν•¨μˆ˜μ— 인자둜 μ „λ‹¬λ˜λŠ” ν•¨μˆ˜. + - 주둜 κ³ μ°¨ν•¨μˆ˜μ˜ ꡬ체적인 λ™μž‘ λ°©μ‹μ΄λ‚˜ 쑰건을 μ •μ˜ν•œλ‹€. + - κ³ μ°¨ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜ μ•ˆμ—μ„œ 직접 μ •μ˜λ˜κ±°λ‚˜ ν˜Ήμ€ ν™”μ‚΄ν‘œν•¨μˆ˜λ‚˜ functionν‚€μ›Œλ“œλ‘œ 미리 μ„ μ–Έν•œ λ’€ ν•¨μˆ˜λͺ…μœΌλ‘œ μ „λ‹¬λ˜κΈ°λ„ ν•œλ‹€. + - ### **β—ΌοΈŽ ν™”μ‚΄ν‘œ ν•¨μˆ˜** + - function ν‚€μ›Œλ“œ λŒ€μ‹  => ν‚€μ›Œλ“œλ‘œ ν•¨μˆ˜λ₯Ό 더 κ°„κ²°ν•˜κ²Œ ν‘œν˜„ν•˜λŠ” 문법(ES6 λΆ€ν„° λ„μž…λ¨) + - ꡬ문 : #card + id:: 690c6418-ab35-4882-a474-0b3de7ef27e0 + - ```typescript + const ν•¨μˆ˜λͺ… = (λ³€μˆ˜λͺ…1: type, λ³€μˆ˜λͺ…2: type, ...): type => { ν•¨μˆ˜ μ •μ˜ }; + const ν•¨μˆ˜λͺ… = λ³€μˆ˜λͺ… => { μ •μ˜ }; // μΈμžκ°€ 1개인 경우 μ†Œκ΄„ν˜Έ μƒλž΅ κ°€λŠ₯ + const ν•¨μˆ˜λͺ… = λ³€μˆ˜λͺ… => λ³€μˆ˜λͺ… + 1 // ν•¨μˆ˜ 본문이 1쀄일 경우 μ€‘κ΄„ν˜Έμ™€ return μƒλž΅ κ°€λŠ₯ + ``` + - νŠΉμ§• : #card + id:: 690c64ea-7a29-4043-854c-9b88f0da355d + - ν™”μ‚΄ν‘œ ν•¨μˆ˜λŠ” 자기만의 thisλ₯Ό κ°€μ§€μ§€ μ•ŠλŠ”λ‹€.(λž™μ‹œμ»¬ this) + - ν•¨μˆ˜μ˜ μ„ μ–Έ μ‹œμ μ—μ„œμ˜ μƒμœ„ μŠ€μ½”ν”„μ—μ„œ this값을 λ¬Όλ €λ°›μ•„μ„œ μ‚¬μš©ν•œλ‹€ + - 즉 일반적인 μ½”λ“œ λ³Έλ¬Έμ—μ„œ μ‚¬μš©ν•  경우 thisλŠ” μ „μ—­λ³€μˆ˜ κ·Έ 자체 μ˜μ—­μ΄ 되고, 클래슀 λ‚΄λΆ€μ—μ„œ 선언될 경우 κ·Έ μ„ μ–Έλœ ν΄λž˜μŠ€κ°€ thisκ°€ λœλ‹€. + - μƒμ„±μžλ‘œ μ‚¬μš©ν•  수 μ—†λ‹€(new ν‚€μ›Œλ“œ λΆˆκ°€) + - ### **β—ΌοΈŽ κ³ μ°¨ν•¨μˆ˜ μ’…λ₯˜** + - **β—‰ map()** #card + id:: 690c65e0-a93b-476f-b299-bdc5352e9a98 + - ```javascript + Array.map(callback(element, index, array)) + // element(ν•„μˆ˜) : μˆœνšŒν•˜λŠ” ν˜„μž¬ μš”μ†Œ + // index(선택) : ν˜„μž¬ μš”μ†Œμ˜ 인덱슀 + // array(선택) : μˆœνšŒμ€‘μΈ 원본 λ°°μ—΄ + ``` + - λͺ©μ  : λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό μˆœνšŒν•˜λ©°, 콜백 ν•¨μˆ˜κ°€ λ°˜ν™˜ν•˜λŠ” 결과둜 μƒˆλ‘œμš΄ 배열을 μƒμ„±ν•œλ‹€. + - λ°˜ν™˜ κ°’ : μƒˆλ‘œμš΄ λ°°μ—΄ + - 원본 μˆ˜μ •μœ λ¬΄ : X + - **β—‰ filter()** #card + id:: 690c7217-8d56-48c9-a4c6-d25b9b3919d9 + - ```javascript + Array.filter(callback(element, index, array)) + // element(ν•„μˆ˜) : μˆœνšŒν•˜λŠ” ν˜„μž¬ μš”μ†Œ + // index(선택) : ν˜„μž¬ μš”μ†Œμ˜ 인덱슀 + // array(선택) : μˆœνšŒμ€‘μΈ 원본 λ°°μ—΄ + ``` + - μ½œλ°±ν•¨μˆ˜κ°€ trueλ₯Ό λ°˜ν™˜ν•˜λŠ” μš”μ†Œλ“€λ§Œ λͺ¨μ•„μ„œ μƒˆλ‘œμš΄ 배열을 μƒμ„±ν•œλ‹€. + - λ°˜ν™˜ κ°’ : μƒˆλ‘œμš΄ λ°°μ—΄ + - 원본 μˆ˜μ •μœ λ¬΄ : X + - **β—‰ every()** #card + id:: 690c7258-f134-4b47-93d3-ef1ed0b1b0cf + - ```javascript + Array.every(callback(element, index, array)) + // element(ν•„μˆ˜) : μˆœνšŒν•˜λŠ” ν˜„μž¬ μš”μ†Œ + // index(선택) : ν˜„μž¬ μš”μ†Œμ˜ 인덱슀 + // array(선택) : μˆœνšŒμ€‘μΈ 원본 λ°°μ—΄ + ``` + - λͺ©μ  : λͺ¨λ“  μš”μ†Œκ°€ μ½œλ°±ν•¨μˆ˜μ˜ 쑰건을 ν†΅κ³Όν•˜λŠ”μ§€ 확인 + - λ°˜ν™˜ κ°’ : true(λͺ¨λ“  μš”μ†Œμ— λŒ€ν•΄ μ½œλ°±ν•¨μˆ˜κ°€ trueλ₯Ό λ°˜ν™˜) / false + - 원본 μˆ˜μ •μœ λ¬΄ : X + - **β—‰ forEach()** #card + id:: 690c72b7-52f6-44b7-a984-413803266251 + - ```javascript + Array.forEach(callback(element, index, array)) + // element(ν•„μˆ˜) : μˆœνšŒν•˜λŠ” ν˜„μž¬ μš”μ†Œ + // index(선택) : ν˜„μž¬ μš”μ†Œμ˜ 인덱슀 + // array(선택) : μˆœνšŒμ€‘μΈ 원본 λ°°μ—΄ + ``` + - λͺ©μ  : 각 μš”μ†Œμ— λŒ€ν•΄ 콜백 ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•œλ‹€. (λ‹¨μˆœ 반볡문 λŒ€μ²΄) + - λ°˜ν™˜ κ°’ : undefined(항상) + - 원본 μˆ˜μ •μœ λ¬΄ : X + - **β—‰ reduce()** #card + id:: 690c7caf-1e7a-47ae-a3a8-cadadce5d00d + - ```javascript + Array.reduce(callback(accumulator, currentValue, currentIndex, array), initial value) + // accumulator(ν•„μˆ˜) : λˆ„μ μž (μ΄μ „κΉŒμ§€ λˆ„μ λœ κ²°κ³Ό) + // currentValue(ν•„μˆ˜) : ν˜„μž¬ μˆœνšŒν•˜λŠ” κ°’ + // currentIndex(선택) : ν˜„μž¬ μˆœνšŒν•˜λŠ” 인덱슀 + // array(선택) : μˆœνšŒμ€‘μΈ 원본 λ°°μ—΄ + // initialValue(선택) : λˆ„μ μžμ˜ 초기 κ°’(λ―Έ μž…λ ₯μ‹œ λ°°μ—΄μ˜ 첫 μš”μ†Œλ‘œ μ΄ˆκΈ°ν™”ν•¨) + // γ„΄ 이 κ²½μš°μ—λŠ” λ‘λ²ˆμ§Έ μš”μ†ŒλΆ€ν„° 순회λ₯Ό ν•œλ‹€. + ``` + - λͺ©μ  : λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό μˆœνšŒν•˜λ©° ν•˜λ‚˜μ˜ κ²°κ³Όκ°’μœΌλ‘œ μΆ•μ•½ν•œλ‹€ + - λ°˜ν™˜ κ°’ : μ΅œμ’… λˆ„μ  κ°’(μžλ£Œν˜• 무관) + - 원본 μˆ˜μ •μœ λ¬΄ : X + - reduceRight()도 μ‚¬μš©λ²•μ€ 동일함 + - reduce() λŠ” 첫번재 μΈλ±μŠ€λΆ€ν„°, reduceRight()λŠ” λ§ˆμ§€λ§‰ μΈλ±μŠ€λΆ€ν„° μˆœνšŒν•œλ‹€λŠ” 차이만 있음 + - **β—‰ find()** #card + id:: 690c83f1-ff9a-47ed-821e-4a55c955a405 + - ```javascript + Array.find(callback(element, index, array)) + // element(ν•„μˆ˜) : μˆœνšŒν•˜λŠ” ν˜„μž¬ μš”μ†Œ + // index(선택) : ν˜„μž¬ μš”μ†Œμ˜ 인덱슀 + // array(선택) : μˆœνšŒμ€‘μΈ 원본 λ°°μ—΄ + ``` + - λͺ©μ  : μ½œλ°±ν•¨μˆ˜λ‘œ μ£Όμ–΄μ§„ νŒλ³„ 쑰건을 λ§Œμ‘±ν•˜λŠ” 첫 번째 μš”μ†Œμ˜ 값을 λ°˜ν™˜ν•œλ‹€. + - λ°˜ν™˜ κ°’ : 찾은 μš”μ†Œμ˜ κ°’(없을 경우 undefined) + - 원본 μˆ˜μ •μœ λ¬΄ : X + - findLast()도 μ‚¬μš©λ²•μ€ 동일함 + - find() λŠ” μ•žμ—μ„œλΆ€ν„°, findLast()λŠ” λ’€μ—μ„œ λΆ€ν„° μ°ΎλŠ”λ‹€λŠ” 차이가 있음. + - **β—‰ findIndex()** #card + id:: 690c84c0-95ba-4784-a2b4-5d532d7301e5 + - ```javascript + Array.find(callback(element, index, array)) + // element(ν•„μˆ˜) : μˆœνšŒν•˜λŠ” ν˜„μž¬ μš”μ†Œ + // index(선택) : ν˜„μž¬ μš”μ†Œμ˜ 인덱슀 + // array(선택) : μˆœνšŒμ€‘μΈ 원본 λ°°μ—΄ + ``` + - λͺ©μ  : μ½œλ°±ν•¨μˆ˜λ‘œ μ£Όμ–΄μ§„ νŒλ³„ 쑰건을 λ§Œμ‘±ν•˜λŠ” 첫 번째 μš”μ†Œμ˜ 인덱슀λ₯Ό λ°˜ν™˜ν•œλ‹€. + - λ°˜ν™˜ κ°’ : 찾은 μš”μ†Œμ˜ 인덱슀(number)(없을 경우 -1) + - 원본 μˆ˜μ •μœ λ¬΄ : X + - findLastIndex()도 μ‚¬μš©λ²•μ€ 동일함 + - findIndex() λŠ” μ•žμ—μ„œλΆ€ν„°, findLastIndex()λŠ” λ’€μ—μ„œ λΆ€ν„° μ°ΎλŠ”λ‹€λŠ” 차이가 있음. + - **β—‰ sort()** #card + id:: 690c8559-e964-4d45-8def-eb1e9ec8bf8f + - ```javascript + Array.sort(compareFunction(a,b)); + // comapreFunction(선택) : 정렬기쀀을 지정해쀄 μ½œλ°±ν•¨μˆ˜ + // a, b(선택) : λΉ„κ΅ν•¨μˆ˜λ‘œ 비ꡐ할 두 μš”μ†Œ + ``` + - λͺ©μ  : λ°°μ—΄μ˜ μš”μ†Œλ₯Ό μ •λ ¬ν•œλ‹€. μ •λ ¬ μˆœμ„œλŠ” 콜백 ν•¨μˆ˜(비ꡐ ν•¨μˆ˜)λ₯Ό 톡해 μ§€μ •ν•  수 μžˆλ‹€. + - λ°˜ν™˜ κ°’ : μ •λ ¬λœ λ°°μ—΄μ˜ μ°Έμ‘°λ₯Ό λ°˜ν™˜. 볡사본이 λ§Œλ“€μ–΄μ§€λŠ” 것이 μ•„λ‹Œ 원본 λ°°μ—΄ μžμ²΄κ°€ μ •λ ¬λ˜μ–΄ 참쑰된 λ°˜ν™˜μ„ 함. + - 원본 μˆ˜μ •μœ λ¬΄ : O + - 핡심 νŠΉμ§• : + - λΉ„κ΅ν•¨μˆ˜κ°€ 없을 경우, λͺ¨λ“  μš”μ†Œλ₯Ό λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•˜μ—¬μ„œ 그것을 κΈ°μ€€μœΌλ‘œ μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬ν•œλ‹€. + - μ΄λ•Œλ¬Έμ— 숫자의 μ •λ ¬μ˜ 경우 예기치 μ•Šμ€ κ²°κ³Όκ°€ λ‚˜μ˜¬ μˆ˜λ„ μžˆλ‹€. + - λΉ„κ΅ν•¨μˆ˜ μ˜ˆμ‹œ : + - ```javascript + arr.sort((a,b) => a-b) // μ˜€λ¦„μ°¨μˆœ + arr.sort((a,b) => b-a) // λ‚΄λ¦Όμ°¨μˆœ + arr.sort((a,b) => { + if(a.name === b.name) return a.value - b.value; + return b.name - a.name; + }) // 객체의 μ΄λ¦„μˆœ λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ μ •λ ¬ν•˜κ³  이름이 같을 경우 κ°’ κΈ°μ€€μœΌλ‘œ μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬ + ``` \ No newline at end of file diff --git a/pages/μ•Œκ³ λ¦¬μ¦˜ 기법.md b/pages/μ•Œκ³ λ¦¬μ¦˜ 기법.md new file mode 100644 index 0000000..eac0385 --- /dev/null +++ b/pages/μ•Œκ³ λ¦¬μ¦˜ 기법.md @@ -0,0 +1,3 @@ +deck:: Logseq/coding tip + +- \ No newline at end of file diff --git a/pages/자료ꡬ쑰.md b/pages/자료ꡬ쑰.md new file mode 100644 index 0000000..eac0385 --- /dev/null +++ b/pages/자료ꡬ쑰.md @@ -0,0 +1,3 @@ +deck:: Logseq/coding tip + +- \ No newline at end of file diff --git a/pages/μ½”λ”© ν…Œν¬λ‹‰.md b/pages/μ½”λ”© ν…Œν¬λ‹‰.md new file mode 100644 index 0000000..eac0385 --- /dev/null +++ b/pages/μ½”λ”© ν…Œν¬λ‹‰.md @@ -0,0 +1,3 @@ +deck:: Logseq/coding tip + +- \ No newline at end of file diff --git a/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 지식_팁 정리.md b/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 지식_팁 정리.md new file mode 100644 index 0000000..af1ec05 --- /dev/null +++ b/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 지식_팁 정리.md @@ -0,0 +1,8 @@ +- [[javascript_typescript]] +- [[Python]] +- [[C]] +- [[Swift]] +- [[Java]] +- [[자료ꡬ쑰]] +- [[μ•Œκ³ λ¦¬μ¦˜ 기법]] +- [[μ½”λ”© ν…Œν¬λ‹‰]] \ No newline at end of file diff --git a/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전.md b/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전.md index 7ce6b3f..582a4fd 100644 --- a/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전.md +++ b/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전.md @@ -13,18 +13,6 @@ deck:: Logseq/coding tip # 좜λ ₯ # 1 2 3 4 5 ``` - - **● javascript** - id:: 684e9d25-ddf8-4f7c-b781-21bb247497f8 - - ```javascript - const arr = [1,2,3,4,5]; - - for(let i of arr) { - console.log(i); - } - - // 좜λ ₯ - // 1 2 3 4 5 - ``` - - ### **β–Ί μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 객체(Object) λŠ” 파이썬의 λ”•μ…”λ„ˆλ¦¬(Dictionary)** - **ν‚€(key)와 κ°’(value)을 κ°€μ§€λŠ” λ°μ΄ν„°μ˜ μ§‘ν•©(각각의 μ–Έμ–΄μ—μ„œ μ„œλ‘œ λ™μΌν•˜λ‹€κ³  생각해도 무방함)** @@ -47,25 +35,6 @@ deck:: Logseq/coding tip # Yechan # 30 ``` - - **● javascript** - id:: 684ea0a5-0720-4a7b-a3b0-6fd81541ec05 - - ```javascript - // λΉˆλ°μ΄ν„° μ΄ˆκΈ°ν™” 방법 - let obj = {}; - - // 직접 μ„ μ–Έ 방법 - let obj = { - "name": "Yechan", - "age" : 30 - }; - - // 좜λ ₯ - console.log(obj.name); - console.log(obj["age"]); - // Yechan - // 30 - // 두 방법 λͺ¨λ‘ μ‚¬μš© κ°€λŠ₯ - ``` - **β—Ž ν‚€ 및 κ°’ 순회(반볡문 μ‚¬μš©, μˆœμ„œλŠ” 보μž₯λ˜μ§€ μ•ŠμŒ)** - **● pythron** id:: c506e90a-c84b-4498-ba5f-5028f5a874f6 @@ -87,34 +56,6 @@ deck:: Logseq/coding tip # name Yechan # age 30 ``` - - **● javascript** - id:: f380d0d7-7826-4714-bb8c-c78cc601ca50 - - ```javascript - let obj = { - "name": "Yechan", - "age" : 30 - }; - - // key 순회 - for(let key in obj){ - console.log(obj[key]); - } - // Yechan - // 30 - - // key, value 순회 - for [key, value] of Object.entries(obj) { - console.log(key, value); - } - // name Yechan - // age 30 - - for key of Object.keys(obj) { - console.log(key, obj[key]); - } - // name Yechan - // age 30 - ``` - - ### **β–Ί νŒŒμ΄μ¬μ—μ„œ λ°˜λ³΅κ°€λŠ₯ν•œ λ°μ΄ν„°μ…‹μ˜ κ°’κ³Ό 인덱슀λ₯Ό λΆˆλŸ¬μ™€μ„œ μˆœνšŒν•˜κΈ°** - **enumerate()** @@ -154,13 +95,6 @@ deck:: Logseq/coding tip ``` - - -- ## **Cμ–Έμ–΄ λ³€μˆ˜ νƒ€μž…λ³„ λ©”λͺ¨λ¦¬ 할당크기 정리** - - ### **빈칸 μ±„μ›Œλ³΄κΈ°** - id:: 684ea7e1-e59d-47a5-971f-2114a17fdda7 - - ![image.png](../assets/image_1749986661502_0.png) - id:: 684eae27-cd8a-4043-b999-d51b71757544 - - ![image.png](../assets/image_1749986614051_0.png) - id:: 684ea656-cac9-45ba-8dc4-5ade273c8777 - - ## **λΉ„νŠΈμ—°μ‚° 정리** - ### **XOR(배타적 논리합)** @@ -175,6 +109,7 @@ deck:: Logseq/coding tip - κ΅ν™˜λ²•μΉ™, 결합법칙이 μ„±λ¦½ν•œλ‹€: `a ^ b = b ^ a`, `(a ^ b) ^ c = a ^ (b ^ c)` - ν™œμš© id:: 684eb038-f987-419b-b531-2b7a868c0842 + collapsed:: true - μ€‘λ³΅λ˜λŠ” μ—¬λŸ¬ μˆ˜λ“€ 쀑에 단 ν•˜λ‚˜ λ‹€λ₯Έ 수λ₯Ό μ°ΎλŠ” λ°©λ²•μœΌλ‘œ ν™œμš© id:: 684eb045-4df8-4943-bdfb-65f983f2704e - λͺ¨λ“  수λ₯Ό ν•˜λ‚˜ν•˜λ‚˜ xorν•˜λ©΄ κ²°κ΅­ μ΅œμ’…μ μœΌλ‘œ λ‚˜μ˜€λŠ” κ²°κ³ΌλŠ” λ‹€λ₯Έ ν•˜λ‚˜κ°€ λ‚˜μ˜΄. @@ -198,52 +133,4 @@ deck:: Logseq/coding tip a = a ^ b; // 이제 a=5, b=3 (값이 μ„œλ‘œ λ°”λ€œ) ``` -- -- ## **μžλ°”μŠ€ν¬λ¦½νŠΈ νŠΉμ§•κ΄€λ ¨ λ‚΄μš©** - - **ν™”μ‚΄ν‘œ ν•¨μˆ˜** - - μ •μ˜ - id:: 685d3bc9-b9df-4cc9-be77-d6f26ee73924 - - ν•¨μˆ˜λ₯Ό funcion으둜 λ”°λ‘œ μ„ μ–Έν•΄μ„œ μ‚¬μš©ν•˜λŠ” 것이 μ•„λ‹Œ ν•œμ€„, ν˜Ήμ€ μ—¬λŸ¬μ€„λ‘œ κ°„κ²°ν•˜κ²Œ ν‘œν˜„ν•˜λŠ” ν‘œν˜„μ‹μ˜ ν•œ ν˜•νƒœ. - - ```javascript - // κΈ°μ‘΄ ν•¨μˆ˜ μ„ μ–Έ 방식 - function sum(a, b) { - return a+b; - } - - // ν™”μ‚΄ν‘œ ν•¨μˆ˜ - const sum = (a,b) => a+b; - ``` - - μ‚¬μš©λ°©λ²• - id:: 685d3bec-8254-43a8-9d7a-fada78a05b6a - - λ³€μˆ˜νƒ€μž… 및 ν•¨μˆ˜λͺ…을 μ“°κ³  κ·Έ 뒀에 =을 뢙인 λ’€ λ³€μˆ˜λ“€μ„ κ΄„ν˜Έλ‘œ μ§€μ •ν•œ λ’€ => 기호둜 μ—°κ²°. - - 이 ν›„ ν™”μ‚΄ν‘œ 뒀에 ν•¨μˆ˜λ₯Ό 적으면 됨. - - 이 λ’€μ˜ ν•¨μˆ˜κ°€ ν•œμ€„μ΄λ©΄ return을 μ“°μ§€ μ•Šμ•„λ„ μ•Œμ•„μ„œ λ°˜ν™˜ν•¨. - - μ—¬λŸ¬μ€„ 일 κ²½μš°μ—λŠ” μ€‘κ΄„ν˜Έλ₯Ό μ“°κ³ , μ΄λ•ŒλŠ” κΌ­ return을 μ¨μ€˜μ•Ό 함. - - ```javascript - // ν•œ 쀄, μ•”μ‹œμ  λ°˜ν™˜ - const sum = (a, b) => a + b; - - // μ—¬λŸ¬ 쀄, λͺ…μ‹œμ  λ°˜ν™˜ ν•„μš” - const multiply = (a, b) => { - const result = a * b; - return result; - }; - ``` - - μ˜ˆμ‹œμ½”λ“œ - - ν•œ μ€„λ‘œ ν‘œν˜„, μž…λ ₯κ°’μ˜ 2λ°°λ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜ μ„ μ–Έ - id:: 685d3c87-2b8e-410e-87f6-9166619ab636 - - ```javascript - const double = x => x*2; - - console.log(double(10)); // 20 - ``` - - μ—¬λŸ¬μ€„ ν‘œν˜„, 두 수λ₯Ό μž…λ ₯λ°›μ•„μ„œ κ·Έ 두 수λ₯Ό κ³±ν•œ 값을 λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜ μ„  - id:: 685d3cd9-6924-4800-a57d-61f5d37193db - - ```javascript - const multiply = (a,b) => { - const result = a*b; - return result; - }; - - console.log(multiply(10,5)); // 50 - ``` \ No newline at end of file +- \ No newline at end of file diff --git a/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전이전.md b/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전이전.md new file mode 100644 index 0000000..02a61b7 --- /dev/null +++ b/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전이전.md @@ -0,0 +1,80 @@ +- +deck:: Logseq/coding tip + +- ## **❖ Javascript / Typescript** + - ### **β–Ί λ°°μ—΄ λ§€μ„œλ“œ** + - ### **β—ΌοΈŽ Array.slice(start_idx, end_idx)** + id:: 68692600-551c-488b-ad74-de8145729133 + - **λ°°μ—΄μ—μ„œ νŠΉμ • λ²”μœ„μ˜ 인덱슀 λΆ€λΆ„λ§Œ μž˜λΌλ‚΄μ„œ κ·Έ 배열을 λ°˜ν™˜ν•˜λŠ” λ§€μ„œλ“œ** + - **end_idxλŠ” μƒλž΅ κ°€λŠ₯ν•˜λ‹€** + - 이 κ²½μš°μ—λŠ” start_idx λΆ€ν„° λκΉŒμ§€ λ°˜ν™˜ν•œλ‹€. + - **λ°°μ—΄μ˜ start_idx 인덱슀 λΆ€ν„° end_idx - 1 μΈλ±μŠ€κΉŒμ§€μ˜ 배열을 μž˜λΌλ‚΄μ„œ λ°˜ν™˜ν™€** + - 예λ₯Ό λ“€λ©΄ arr.slice(2,7) 은 arr의 인덱슀2 λΆ€ν„° 인덱슀 6κΉŒμ§€μ˜ 배열을 λ°˜ν™˜ν•¨. + - **λ²”μœ„λ₯Ό μ΄ˆκ³Όν•΄λ„ μ—λŸ¬λ₯Ό λ‚΄μ§€ μ•ŠμŒ. κ·Έμ € 빈 배열을 λ°˜ν™˜ν•  λΏμž„.** + - **아무리 ν˜ΈμΆœν•΄λ„ 원본 λ°°μ—΄ 자체λ₯Ό λ°”κΎΈμ§€λŠ” μ•ŠλŠ”λ‹€.** + - ```javascript + const arr = [0,1,2,3,4,5,6,7,8,9,10]; + + const arr1 = arr.slice(2); // [2,3,4,5,6,7,8,9,10] + const arr2 = arr.slice(5,10); // [5,6,7,8,9] + const arr3 = arr.slice(12); // [] + ``` +- ## **❖ Python** +- ## **❖ C** +- ## **❖ Java** +- ## **❖ ν”„λ‘œκ·Έλž˜λ° κ΄€λ ¨ 이둠 정리** + - ### **β–Ί μ•Œκ³ λ¦¬μ¦˜** + - ### **β—ΌοΈŽ μ§„μˆ˜λ³€ν™˜ μ•Œκ³ λ¦¬μ¦˜** + - β—‰ **Bμ§„μˆ˜ 숫자 N을 10μ§„μˆ˜λ‘œ λ°”κΎΈκΈ°(λˆ„μ κ³±)** + id:: 687250f4-c492-4481-90b4-2894f302b02d + - μ΅œμ’… λ³€ν™˜ κ²°κ³Ό result λ₯Ό 0으둜 μ΄ˆκΈ°ν™” + - Bμ§„μˆ˜ 숫자 N의 κ°€μž₯ μ™Όμͺ½μžλ¦¬λΆ€ν„° ν•œμžλ¦¬μ”© μˆœνšŒν•˜λ©΄μ„œ μ§„ν–‰ + - μˆœνšŒν•˜λ©° 읽은 값을 10μ§„μˆ˜λ‘œ λ°”κΏˆ(10 μ΄μƒμ˜ μˆ˜λŠ” A=10, B=11 λ“±λ“±), 이 값을 val둜 μ§€μ • + - result = result*B + val + - λͺ¨λ“  μžλ¦¬μˆ˜μ— λŒ€ν•΄ μˆ˜ν–‰ν•˜κ³  λ‚˜λ©΄ μ΅œμ’…μ μœΌλ‘œ result에 10μ§„μˆ˜λ‘œ λ³€ν™˜λœ μˆ«μžκ°€ λ‚˜μ˜΄. + - β—‰ **10μ§„μˆ˜ 숫자 N을 Bμ§„μˆ˜λ‘œ λ°”κΎΈκΈ°(λ‚˜λ¨Έμ§€ 계산법)** + id:: 6872521b-6fe5-4b65-a929-38c176052368 + - μ΅œμ’… λ³€ν™˜ κ²°κ³Ό result λ₯Ό λ°°μ—΄λ‘œμ„œ μ΄ˆκΈ°ν™” + - N이 0이 될 λ•ŒκΉŒμ§€ λ°˜λ³΅λ¬Έμ„ 돌림 + - val = N%B + - μ΄λ•Œ κ³„μ‚°λœ val값을 Bμ§„μˆ˜μ— 맞게 λ³€ν™˜μ—μ„œ result 배열에 μ‚½μž…. + - μ•žμ—μ„œλΆ€ν„° μˆœμ„œλŒ€λ‘œ λ„£λŠ”λ‹€. + - N = N//B + - result 배열을 맨 λ§ˆμ§€λ§‰ μΈλ±μŠ€λΆ€ν„° μ—­μˆœμœΌλ‘œ 읽으면 그것이 μ΅œμ’… λ³€ν™˜ κ²°κ³Ό. + - ### **β—ΌοΈŽ μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•(μ΅œμ†Œκ³΅λ°°μˆ˜, μ΅œλŒ€κ³΅μ•½μˆ˜ κ΅¬ν•˜κΈ°)** + - β—‰ **μ΅œλŒ€κ³΅μ•½μˆ˜(GCD) κ΅¬ν•˜κΈ°** + id:: 687253f3-7eb2-421e-b8c0-d9b96d4d7323 + - μž…λ ₯ν•œ 두 수의 μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό κ΅¬ν•˜λŠ” ν•¨μˆ˜ GCDμ—μ„œ μ•„λž˜μ˜ 두 곡식이 μ„±λ¦½ν•œλ‹€. + - GCD(a, b) = GCD(b, a % b) + - GCD(a, 0) = a + - μœ„μ˜ 곡식을 λ°”νƒ•μœΌλ‘œ λ‹€μŒμ˜ 과정을 톡해 μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό κ΅¬ν•œλ‹€.(a>=b) + - 1. r = a%b + - 2. a-b, b=r 둜 κ°’ κ°±μ‹  + - 3. b = 0이면, aκ°€ μ΅œλŒ€κ³΅μ•½μˆ˜ + - 4. b != 0이면 λ‹€μ‹œ 1λ²ˆλΆ€ν„° μ‹€ν–‰ + - μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²• gcd μ˜ˆμ‹œμ½”λ“œ + id:: 687255f3-27a7-4bef-a684-60daab2fa33f + - μž¬κ·€λ°©μ‹ + - ```python + def gcd(a,b): + return a if b==0 else gcd(b, a%b) + ``` + - 반볡문 방식 + - ```python + def gcd(a,b): + while b: + a, b = b, a%b + return a + ``` + - β—‰ **μ΅œμ†Œκ³΅λ°°μˆ˜(LCM) κ΅¬ν•˜κΈ°** + id:: 687256b1-be35-4052-a12e-133e2c3b2f50 + - 두 수 a,b와 κ·Έ 수의 μ΅œλŒ€κ³΅μ•½μˆ˜(GCD)λ₯Ό μ•Œλ©΄ a,b의 μ΅œμ†Œκ³΅λ°°μˆ˜(LCM)λŠ” λ‹€μŒκ³Ό κ°™λ‹€. + - LCM = (a * b) / GCD + - ### **β–Ί μ‚¬μ†Œν•œ ν…Œν¬λ‹‰** + - ### **β—ΌοΈŽ μ†Œμˆ˜μ  올림 μ—°μ‚°(ceil)** + id:: 68725357-aae4-4805-9550-21927cf3731a + - λŒ€λΆ€λΆ„μ˜ μ–Έμ–΄μ—λŠ” ceilμ΄λΌλŠ” μ˜¬λ¦Όμ—°μ‚° λ©”μ„œλ“œλ₯Ό μ§€μ›ν•˜μ§€λ§Œ μ‚¬μš©ν•  수 μ—†λŠ” ν™˜κ²½μΌ κ²½μš°μ—λŠ” λ‹€μŒκ³Ό 같이 κ³„μ‚°ν•œλ‹€. + - ```python + ceil(x/y) = (x+y-1)//y + ``` + - \ No newline at end of file diff --git a/pages/πŸ“‹ Index Page.md b/pages/πŸ“‹ Index Page.md index 1a212d0..f552ad7 100644 --- a/pages/πŸ“‹ Index Page.md +++ b/pages/πŸ“‹ Index Page.md @@ -1,4 +1,5 @@ - [[πŸ”€ μ˜μ–΄κ³΅λΆ€]] -- [[πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ]] +- [[πŸ‘©πŸ»β€πŸ’»μ½”λ”© 지식_팁 정리]] +- [[πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전이전]] - [[πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전]] - \ No newline at end of file