From f644b844fccd9149157e6bdb2d50a4fb90a1a6e8 Mon Sep 17 00:00:00 2001 From: songyc macbook Date: Sat, 5 Jul 2025 01:07:42 +0900 Subject: [PATCH] coding tip modify --- pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ.md | 507 +------------------------- pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전.md | 502 +++++++++++++++++++++++++ pages/πŸ“‹ Index Page.md | 1 + 3 files changed, 523 insertions(+), 487 deletions(-) create mode 100644 pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전.md diff --git a/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ.md b/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ.md index 87c438d..e1dfcea 100644 --- a/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ.md +++ b/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ.md @@ -1,501 +1,34 @@ deck:: Logseq/coding tip -- ## **각 언어별 2차원 λ°°μ—΄(n*m) 생성** - - **Javascript** - - id:: 684578c3-84af-4595-af7a-dc46f58bd99b - 1. ν•œμ€„λ‘œ μ„ μ–Έν•˜κΈ°(2κ°€μ§€ 방법) #card +- ## **Javascript / Typescript** + - ### **이차원 λ°°μ—΄(n*m) 생성** + - id:: 6867f897-928a-4f22-8184-491fa70314db + 1. Array.from() μ‚¬μš©λ²• #card + - ```javascript + const arr = Array.from({length : n}, () => new Array(m).fill(0)); + ``` + - id:: 6867f8fc-3249-4ced-91aa-a2c951c11b0b + 2. Array().fill() μ‚¬μš©λ²• #card - ```javascript - const arr = Array.from({ length: n }, () => new Array(m).fill(0)); - const arr = new Array(n).fill().map(() => new Array(m).fill(0)); ``` - - id:: 68457909-49bf-4cab-b5fc-c61081c0aa0c - 2. 반볡문으둜 μ€‘μ²©ν•΄μ„œ μƒμ„±ν•˜κΈ° #card + - id:: 6867f8fe-39c6-438b-a045-4f8687ad0b1d + 3. 반볡문 순회 #card - ```javascript let arr = []; - for (let i = 0; i < n; i++) { + for(int i=0; i - id:: 68500a89-08d4-48b2-aa6b-c465041f065b - **λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œκ°€ 쑰건식을 λ§Œμ‘±ν•˜λŠ”μ§€ ν™•μΈν•΄μ„œ T/Fλ₯Ό λ°˜ν™˜ν•˜λŠ” λ§€μ„œλ“œ** - ```javascript - const arr = [1,2,3,4,5]; - arr.every((element, index, array) => {쑰건식}); - // element: ν˜„μž¬ μš”μ†Œ - // index: ν˜„μž¬ 인덱슀 (μƒλž΅ κ°€λŠ₯) - // array: 원본 λ°°μ—΄ (μƒλž΅ κ°€λŠ₯) - ``` - - **예제 : λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œκ°€ 같은 값인지 ν™•μΈν•˜λŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ‹œμ˜€.** - id:: 68500afb-beda-428b-bab7-e2dceb371325 - **μ˜ˆμ‹œ 배열은 arr1 = [5,5,5], arr2 = [5,4,5] 둜 μ„ μ–Έν•΄μ„œ ν•  것!** #card - - ```javascript - const arr1 = [5, 5, 5]; - const arr2 = [5, 4, 5]; - - arr1.every(v => v===arr1[0]); // true - arr2.every(v => v===arr2[0]); // false - ``` - - - - **arr.slice()** - - **κΈ°λ³Έ μ •μ˜** :-> - id:: 68500c5b-9c05-4141-ab0c-3e179450bc03 - **λ°°μ—΄μ˜ μž…λ ₯ν•œ μΈλ±μŠ€λΆ€ν„° λκΉŒμ§€μ˜ 배열을 λ°˜ν™˜ν•˜λŠ” λ§€μ„œλ“œ** - **인덱슀 λ²”μœ„λ₯Ό μ΄ˆκ³Όν•΄λ„ 빈 배열을 λ°˜ν™˜ν•˜κΈ° λ•Œλ¬Έμ— μ—λŸ¬κ°€ μ—†μŒ** - ```javascript - const arr = [1,2,3,4,5]; - arr.slice(3); // [4,5] - arr.slice(5); // [] - ``` - - - - **arr.forEach()** - - **κΈ°λ³Έ μ •μ˜** #card - id:: 68500698-1dfa-4aff-9577-359f8fe63c99 - - ```javascript - const arr = [1,2,3,4,5]; - arr.forEach((element, index, array) => { - // element: ν˜„μž¬ μš”μ†Œ - // index: ν˜„μž¬ 인덱슀 (μƒλž΅ κ°€λŠ₯) - // array: 원본 λ°°μ—΄ (μƒλž΅ κ°€λŠ₯) - // μœ„μ˜ ν˜„μž¬ μš”μ†Œ 및 인덱슀, 원본배열은 νŽΈν•œκ±Έλ‘œ λ°”κΏ”μ„œ 선언해도 됨. - // μœ„μ— μ§€μ •ν•œ 것을 λ³€μˆ˜μ‚Όμ•„μ„œ forλ¬Έ μ•ˆμ˜ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ“― μ½œλ°±ν•¨μˆ˜λ₯Ό μ„ μ–Έ - // 그러면 forλ¬Έ 처럼 각 μš”μ†Œλ“€μ€ μˆœνšŒν•˜λ©° μ½”λ“œλ₯Ό 싀행함 - }); - ``` - - **반볡문 μ œμ–΄ ν•¨μˆ˜μΈ break, continue μ‚¬μš©λ²•** #card - id:: 685007a1-6eab-4601-b002-6e0724e064d8 - - breakλŠ” μ‚¬μš© λΆˆκ°€(κΌ­ ν•„μš”ν•˜λ‹€λ©΄ κ·Έλƒ₯ for, while, do whlie을 μ“Έ 것!) - - continueλŠ” return 으둜 λŒ€μ²΄ν•΄μ„œ μ‚¬μš©ν•¨.(ν˜„μž¬ μΈλ±μŠ€μ— λŒ€ν•œ 순회λ₯Ό κ·Έμ¦‰μ‹œ 끝내고 λ‹€μŒμœΌλ‘œ λ„˜μ–΄κ°) - - 예제 - ```javascript - const arr = [1,2,3,4,5]; - arr.forEach(v => { - if(v===3) return; - console.log(v); - }); - - // 좜λ ₯(κ°œν–‰μ€ μƒλž΅ν•¨) - // 1 2 4 5 - ``` - - - - **arr.reduce()** - - **κΈ°λ³Έ μ •μ˜** #card - id:: 685698f1-be84-4d2a-9440-256b6831989d - - ```javascript - // arr.reduce(<μ½œλ°±ν•¨μˆ˜>,<λˆ„μ λ³€μˆ˜μ˜ μ΄ˆκΈ°κ°’>) - arr.reduce((accumulator, currentValue, currentIndex, array)=> <ν•¨μˆ˜μ½”λ“œ>, <λˆ„μ μžμ˜ μ΄ˆκΈ°κ°’>) - // accumulator: 이전 μš”μ†Œλ₯Ό μƒλŒ€λ‘œ 콜백 ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•œ κ²°κ³Ό (λˆ„μ μž) - // currentValue: ν˜„μž¬ μš”μ†Œμ˜ κ°’ - // currentIndex: ν˜„μž¬ μš”μ†Œμ˜ 인덱슀 (μƒλž΅κ°€λŠ₯) - // array: reduce() λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜λŠ” λ°°μ—΄ (μƒλž΅κ°€λŠ₯) - ``` - - λ°°μ—΄μ˜ 각 μš”μ†Œλ³„λ‘œ λˆ„μ μžλ₯Ό κ³„μ‚°ν•˜κ³  μ΅œμ’…μ μœΌλ‘œ λͺ¨λ“  μš”μ†Œλ₯Ό μˆœνšŒν•œ λ’€μ˜ λˆ„μ μžλ₯Ό 리턴함. - - **μ˜ˆμ‹œ (1-10κΉŒμ§€μ˜ 합을 κ΅¬ν•˜κΈ°)(1-10κΉŒμ§€ 배열을 ν•œμ€„λ‘œ μ„ μ–Έν•œ λ’€ κ·Έ λ°°μ—΄μ˜ 합을 κ΅¬ν•˜λŠ” λ°©μ‹μœΌλ‘œ)** #card - id:: 68569a43-c4bc-4aaf-b07b-aeef8599a43f - - ```javascript - const arr = Array.from({length : 10}, (v,i)=> v=i+1); - const sum = arr.reduce((acc, val) => acc + val, 0); - console.log(sum); // 55 - ``` - - - - **arr.sort()** - - arr의 데이터듀을 μ˜€λ¦„μ°¨μˆœμœΌλ‘œ 정리함. #card - id:: 68595f48-e964-47fe-9b89-9f0aa4eeed3e - - κΈ°λ³Έμ μœΌλ‘œλŠ” 데이터듀을 λ¬Έμžμ—΄λ‘œ 보고 μ •λ ¬ν•˜κΈ° λ•Œλ¬Έμ— μˆ«μžκ°€ μ œλŒ€λ‘œ μ •λ ¬λ˜μ§€ μ•ŠλŠ” κ²½μš°κ°€ 있음. - - λ§€μ„œλ“œ κ΄„ν˜Έ μ•ˆμ— μ½œλ°±ν•¨μˆ˜λ₯Ό λ„£μ–΄μ„œ μˆ«μžλ“€μ„ μ •ν™•ν•˜κ²Œ μ˜€λ¦„μ°¨μˆœ ν˜Ήμ€ λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ μ •λ ¬ν•  수 있음. - - μ˜€λ¦„μ°¨μˆœ #card - id:: 68595fed-e1f0-4fb3-8c27-6650027c0749 - - ```javascript - let arr = [10,5,7,2]; - arr.sort((a,b)=>a-b); - console.log(arr) // 2,5,7,10 - ``` - - λ‚΄λ¦Όμ°¨μˆœ #card - id:: 6859607c-2839-490a-9f49-8ba86607905c - - ```javascript - let arr = [10,5,7,2]; - arr.sort((a,b)=>b-a); - console.log(arr) // 10,7,5,2 - ``` - - **python** - - **arr.count(value)** #card - id:: 6857c84c-711b-4865-ba82-92c2d81c0e0b - - 리슀트 ν˜Ήμ€ λ¬Έμžμ—΄μ—μ„œ νŠΉμ • κ°’μ˜ 개수λ₯Ό λ¦¬ν„΄ν•˜λŠ” λ§€μ„œλ“œ - - ```python - string = "aaabbcccc" - print(string.count('a')) # 3 - print(string.count('b')) # 2 - print(string.count('c')) # 4 - - arr = [1,2,2,3,3,3,4,4,4,4] - print(arr.count(1)) # 1 - print(arr.count(2)) # 2 - print(arr.count(3)) # 3 - print(arr.count(4)) # 4 - ``` - - **arr.sort()** #card #depth-1 - id:: 685960df-7858-4413-b448-1b34facec439 - - 리슀트λ₯Ό μ •λ ¬ν•˜λŠ” λ§€μ„œλ“œ. - - 리슀트λ₯Ό μ •λ ¬ν•΄μ„œ κΈ°μ‘΄ 리슀트λ₯Ό μ •λ ¬λœ ν˜•νƒœλ‘œ λ°”κΏˆ. - - arr.sort(reverse=True) μ΄λ ‡κ²Œ ν•˜λ©΄ λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ 정렬됨. - - μ˜ˆμ œμ½”λ“œ #card - id:: 685961bd-0be6-49ff-9a07-f5b2eb371030 - - ```python - arr = [5,8,2,4,9] - arr.sort() # 2 4 5 8 9 - arr.sort(reverse=True) # 9 8 5 4 2 - ``` - - **sorted(arr)** #card #depth-1 - id:: 6859617a-f536-4f57-9cfd-6e4291369c1a - - μž…λ ₯ν•œ 리슀트λ₯Ό μ •λ ¬ν•΄μ„œ μƒˆλ‘œμš΄ 리슀트λ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜ - - κΈ°λ³Έμ μœΌλ‘œλŠ” μ˜€λ¦„μ°¨μˆœμ •λ ¬μ΄κ³ , sorted(arr, reverse=True) 둜 ν•˜λ©΄ λ‚΄λ¦Όμ°¨μˆœμž„. - - μ˜ˆμ œμ½”λ“œ #card - id:: 68596251-f733-4854-902e-faf055a64330 - - ```python - arr = [5,8,2,4,9] - arr1 = sorted(arr) - arr2 = sorted(arr, reverse=True) - print(arr1) # 2 4 5 8 9 - print(arr2) # 9 8 5 4 2 - ``` - - -- -- ## **μ§„μˆ˜λ³€ν™˜ μ•Œκ³ λ¦¬μ¦˜** - - **Bμ§„μˆ˜ 숫자 N을 10μ§„μˆ˜λ‘œ λ°”κΎΈλŠ” 법(λˆ„μ κ³± 방식)** #card - id:: 68458948-9821-42c7-bb19-85d7c7ad4b8d - - N의 μ™Όμͺ½λΆ€ν„° ν•œ μžλ¦¬μ”© λˆ„μ ν•΄μ„œ κ³±ν•˜κ³  λ”ν•˜λŠ” 방식 - - μ•Œκ³ λ¦¬μ¦˜ - - μ΅œμ’…κ²°κ³Ό resλ₯Ό 0으둜 μ΄ˆκΈ°ν™” - - λ°˜λ³΅λ¬Έμ„ 톡해 N의 μ™Όμͺ½μˆ«μžλΆ€ν„° ν•˜λ‚˜μ”© μˆœνšŒν•¨. - - μˆœνšŒν•˜λ©΄μ„œ 읽은 값을 10μ§„μˆ˜λ‘œ λ°”κΎΈκ³ (A=10, B=11...) κ·Έ 값은 val에 μ €μž₯. - - res = res*B + val - - λ°˜λ³΅λ¬Έμ„ λͺ¨λ‘ 돌고 λ‚˜λ©΄ μ΅œμ’…μ μœΌλ‘œ res에 λ³€ν™˜κ°’μ΄ λ“€μ–΄κ°€μžˆμŒ. - - **10μ§„μˆ˜ 숫자 N을 Bμ§„μˆ˜λ‘œ λ°”κΎΈλŠ” 법(λ‚˜λ¨Έμ§€ 계산법)** #card - id:: 68458b0d-5584-48bf-8bb4-aad6449b0193 - - N을 B둜 계속 λ‚˜λˆ„λ©΄μ„œ κ·Έλ•Œλ§ˆλ‹€ λ‚˜λ¨Έμ§€κ°’μ„ 톡해 λ³€ν™˜ν•˜λŠ” 방식 - - μ•Œκ³ λ¦¬μ¦˜ - - μ΅œμ’… κ²°κ³Ό λ¬Έμžμ—΄ resλ₯Ό μ„ μ–Έ. - - N이 0이 될 λ•ŒκΉŒμ§€ λ°˜λ³΅λ¬Έμ„ μˆœνšŒν•¨. - - val에 N을 B둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€ 값을 μ €μž₯. - - val값을 진법에 맞게 λ³€ν™˜ν•΄μ„œ res에 λ„£μŒ.(μ•žμ—μ„œ λΆ€ν„° λ„£λŠ”λ‹€) - - N을 B둜 λ‚˜λˆˆ λͺ«μœΌλ‘œ N을 μž¬μ„ μ–Έ(N=N//B) - - μœ„μ˜ 과정을 λ°˜λ³΅ν•œ λ’€ λ°˜λ³΅λ¬Έμ„ λΉ μ Έλ‚˜μ˜€λ©΄ resμ—λŠ” μ΅œμ’… λ³€ν™˜κ²°κ³Όκ°€ μ—­μˆœμœΌλ‘œ λ“€μ–΄κ°€μžˆμŒ. -- -- ## **μ†Œμˆ˜μ  올림 μ—°μ‚°** - - **ceilν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 방법** #card - id:: 68494b21-76da-4013-a61a-8c8cd812e253 +- ## **Python** + - ### **이차원 λ°°μ—΄(n*m) 생성** #card + id:: 6867f994-13d0-4937-90e9-d8aec7be5d67 - ```python - ceil(x/y) = (x+y-1)//y + arr = [[0]*m for _ in range(n)] ``` -- -- ## **μ΅œμ†Œκ³΅λ°°μˆ˜/μ΅œλŒ€κ³΅μ•½μˆ˜ κ΅¬ν•˜κΈ° (μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•)** - - **μ΅œλŒ€κ³΅μ•½μˆ˜(GCD) κ΅¬ν•˜κΈ°** #card #depth-1 - id:: 685d3d73-9ff0-4ec5-88b0-913cc9d52da5 - - 두 수 a,bκ°€ μžˆμ„ λ•Œ, aλ₯Ό b둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€λ₯Ό r이라 ν•˜λ©΄ a와 b의 μ΅œλŒ€κ³΅μ•½μˆ˜λŠ” b와 r의 μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ κ°™λ‹€. - - 즉 μœ„μ˜ 과정을 계속 λ°˜λ³΅ν•΄μ„œ λ‚˜λ¨Έμ§€κ°€ 0이 될 λ•ŒκΉŒμ§€ λ°˜λ³΅ν•˜λ©΄ 0이되기 μ§μ „μ˜ μˆ˜κ°€ μ΅œλŒ€ κ³΅μ•½μˆ˜κ°€ λœλ‹€. - - 이것은 반볡문으둜, λ˜λŠ” μž¬κ·€ν•¨μˆ˜λ‘œ ꡬ할 수 μžˆλ‹€. - - μ˜ˆμ œμ½”λ“œ(파이썬 κΈ°μ€€) - - μž¬κ·€ν•¨μˆ˜λ‘œ κ΅¬ν˜„ #card - id:: 685d3e0d-40b4-4dd8-a43e-75ee4044f0a6 - - ```python - def GCD(a,b) : - x = max(a,b) - y = min(a,b) - if x%y == 0 : - return y - else : - return GCD(y, x%y) - - a = 18 - b = 24 - print(GCD(a,b)) # 6 - ``` - - 반볡문으둜 κ΅¬ν˜„ #card - id:: 685d3fbd-eaa7-438f-b0dc-ab5bfbe9acac - - ```python - a = 18 - b = 24 - - while b != 0: - r = a % b - a = b - b = r - - print(a) # 6 - - ``` - - **μ΅œμ†Œκ³΅λ°°μˆ˜(LCM) κ΅¬ν•˜κΈ°** - - 두 수 a,b와 κ·Έ 수의 μ΅œλŒ€κ³΅μ•½μˆ˜(GCD)λ₯Ό μ•Œλ©΄ a,b의 μ΅œμ†Œκ³΅λ°°μˆ˜λŠ” λ‹€μŒκ³Ό κ°™λ‹€. #card - id:: 685d41ca-1832-434c-a919-0f67a2a37ec0 - - LCM = (a*b) / GCD(a,b) -- -- ## **파이썬, μžλ°”μŠ€ν¬λ¦½νŠΈ 반볡문 순회 및 객체/λ”•μ…”λ„ˆλ¦¬ 순회** - - ### **β–Ί 일반적인 λ°˜λ³΅κ°€λŠ₯ 객체λ₯Ό ν™œμš©ν•œ 반볡문 순회(κΈ°λ³Έ 순회)** - - **● pythron** #card - id:: 684e9cfd-e828-43ac-9f6c-76492bdcf94a - - ```python - arr = [1,2,3,4,5] - - for i in arr : - print(i) - - # 좜λ ₯ - # 1 2 3 4 5 - ``` - - **● javascript** #card - 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)을 κ°€μ§€λŠ” λ°μ΄ν„°μ˜ μ§‘ν•©(각각의 μ–Έμ–΄μ—μ„œ μ„œλ‘œ λ™μΌν•˜λ‹€κ³  생각해도 무방함)** - - **β—Ž μ„ μ–Έ 및 접근방법** - - **● pythron** #card - id:: 684e9fb3-3cf0-4fa0-8539-e53bfe7fbcc1 - - ```python - # λΉˆλ°μ΄ν„° μ΄ˆκΈ°ν™” 방법 - dic = {} # dict() - - # 직접 μ„ μ–Έ 방법 - dic = { - "name": "Yechan", - "age" : 30 - } - - # 좜λ ₯ - print(dic["name"]) - print(dic["age"]) - # Yechan - # 30 - ``` - - **● javascript** #card - 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** #card - id:: c506e90a-c84b-4498-ba5f-5028f5a874f6 - - ```python - dic = { - "name": "Yechan", - "age" : 30 - } - - # key 순회 - for key in dic : - print(dic[key]) - # Yechan - # 30 - - # key, value 순회 - for key, value in dic.items() : - print(key, value) - # name Yechan - # age 30 - ``` - - **● javascript** #card - 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()** #card #depth-1 - id:: 6857c511-ce76-4075-ba45-a38956deb7df - - λ°˜λ³΅κ°€λŠ₯ν•œ λ°μ΄ν„°μ…‹μ˜ κ°’κ³Ό 인덱슀λ₯Ό νŠœν”Œν˜•νƒœλ‘œ λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜ #card - id:: 6857c541-93f0-441f-8ff1-ca3cf8a3b186 - - ```python - arr = ["apple", "banana", "cat"] - for i in enumerate(arr) : - print(i) - # 좜λ ₯ - # (0, apple) - # (1, banana) - # (2, cat) - ``` - - λ°˜λ³΅λ¬Έμ—μ„œ μΈλ±μŠ€μ™€ 값을 λ™μ‹œμ— μˆœνšŒν•  수 있음. #card - id:: 6857c6b6-3201-47a1-a090-c0ebe75d5e4c - - ```python - arr = ["apple", "banana", "cat"] - for index, value in enumerate(arr) : - print(index, value) - # 좜λ ₯ - # 0 apple - # 1 banana - # 2 cat - ``` - - μ‹œμž‘ 인덱슀λ₯Ό λ°”κΏ€ μˆ˜λ„ 있음. #card - id:: 6857c623-b8e4-4325-a8c2-27a9446118bd - - ```python - arr = ["apple", "banana", "cat"] - for index, value in enumerate(arr, start=1) : - print(index, value) - # 좜λ ₯ - # 1 apple - # 2 banana - # 3 cat - ``` - - -- -- ## **Cμ–Έμ–΄ λ³€μˆ˜ νƒ€μž…λ³„ λ©”λͺ¨λ¦¬ 할당크기 정리** - - ### **빈칸 μ±„μ›Œλ³΄κΈ°** - id:: 684ea7e1-e59d-47a5-971f-2114a17fdda7 - - ![image.png](../assets/image_1749986661502_0.png) #card - id:: 684eae27-cd8a-4043-b999-d51b71757544 - - ![image.png](../assets/image_1749986614051_0.png) - id:: 684ea656-cac9-45ba-8dc4-5ade273c8777 -- -- ## **λΉ„νŠΈμ—°μ‚° 정리** - - ### **XOR(배타적 논리합)** - - 기호 : :-> ^ - id:: 684eaf61-54bb-4f69-af87-f75f280bd119 - - μ—°μ‚°κ°’ : :-> (0,0)->0, (0,1)->1, (1,0)->1, (1,1)->0 [κ°™μœΌλ©΄ 0, λ‹€λ₯΄λ©΄ 1] - id:: 684eafb2-7091-4d69-8c3f-0540d687b782 - - ν•΅μ‹¬μ„±μ§ˆ #card - id:: 684eaff6-5a2b-4cdd-ba5d-cba163b087fa - - 같은 값끼리 XORν•˜λ©΄ 0이 λœλ‹€: `a ^ a = 0` - - 0κ³Ό XORν•˜λ©΄ 자기 μžμ‹ μ΄ λœλ‹€: `a ^ 0 = a` - - κ΅ν™˜λ²•μΉ™, 결합법칙이 μ„±λ¦½ν•œλ‹€: `a ^ b = b ^ a`, `(a ^ b) ^ c = a ^ (b ^ c)` - - ν™œμš© #card #depth-1 - id:: 684eb038-f987-419b-b531-2b7a868c0842 - - μ€‘λ³΅λ˜λŠ” μ—¬λŸ¬ μˆ˜λ“€ 쀑에 단 ν•˜λ‚˜ λ‹€λ₯Έ 수λ₯Ό μ°ΎλŠ” λ°©λ²•μœΌλ‘œ ν™œμš© #card - id:: 684eb045-4df8-4943-bdfb-65f983f2704e - - λͺ¨λ“  수λ₯Ό ν•˜λ‚˜ν•˜λ‚˜ xorν•˜λ©΄ κ²°κ΅­ μ΅œμ’…μ μœΌλ‘œ λ‚˜μ˜€λŠ” κ²°κ³ΌλŠ” λ‹€λ₯Έ ν•˜λ‚˜κ°€ λ‚˜μ˜΄. - - ```C - int arr[] = {1, 2, 3, 2, 1}; - int res = 0; - for(int i=0; i<5; i++) res ^= arr[i]; - // res == 3 (짝이 μ—†λŠ” κ°’) - ``` - - μ€‘λ³΅λ˜λŠ” μˆ˜κ°€ ν™€μˆ˜κ°œλ‘œ 짝지어져 있으면 μ‚¬μš©ν•  수 μ—†μŒ - - 단 단 ν•˜λ‚˜μ˜ 수λ₯Ό μ œμ™Έν•œ λͺ¨λ“  μˆ˜κ°€ 같은 숫자라면 μ‚¬μš© κ°€λŠ₯ - - μž„μ‹œλ³€μˆ˜ 없이 두 λ³€μˆ˜μ˜ 값을 swap #card - id:: 684eb1a1-f13d-45c3-b03b-da9372da5e7c - - XOR μ—°μ‚°μ˜ μ„±μ§ˆμ„ 잘 μ‘μš©ν•˜λ©΄ μ•„λž˜μ˜ μ½”λ“œμ²˜λŸΌ 두 λ³€μˆ˜λ₯Ό κ΅ν™˜ν•  수 있음. - - ```C - int a = 3; - int b = 5; - - a = a ^ b; - b = a ^ b; - a = a ^ b; - // 이제 a=5, b=3 (값이 μ„œλ‘œ λ°”λ€œ) - ``` -- -- ## **μžλ°”μŠ€ν¬λ¦½νŠΈ νŠΉμ§•κ΄€λ ¨ λ‚΄μš©** - - **ν™”μ‚΄ν‘œ ν•¨μˆ˜** - - μ •μ˜ #card - id:: 685d3bc9-b9df-4cc9-be77-d6f26ee73924 - - ν•¨μˆ˜λ₯Ό funcion으둜 λ”°λ‘œ μ„ μ–Έν•΄μ„œ μ‚¬μš©ν•˜λŠ” 것이 μ•„λ‹Œ ν•œμ€„, ν˜Ήμ€ μ—¬λŸ¬μ€„λ‘œ κ°„κ²°ν•˜κ²Œ ν‘œν˜„ν•˜λŠ” ν‘œν˜„μ‹μ˜ ν•œ ν˜•νƒœ. - - ```javascript - // κΈ°μ‘΄ ν•¨μˆ˜ μ„ μ–Έ 방식 - function sum(a, b) { - return a+b; - } - - // ν™”μ‚΄ν‘œ ν•¨μˆ˜ - const sum = (a,b) => a+b; - ``` - - μ‚¬μš©λ°©λ²• #card - 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λ°°λ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜ μ„ μ–Έ #card - id:: 685d3c87-2b8e-410e-87f6-9166619ab636 - - ```javascript - const double = x => x*2; - - console.log(double(10)); // 20 - ``` - - μ—¬λŸ¬μ€„ ν‘œν˜„, 두 수λ₯Ό μž…λ ₯λ°›μ•„μ„œ κ·Έ 두 수λ₯Ό κ³±ν•œ 값을 λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜ μ„ μ–Έ #card - 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 +- ## **C** +- ## **Java** +- ## **ν”„λ‘œκ·Έλž˜λ° κ΄€λ ¨ 이둠 정리** \ No newline at end of file diff --git a/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전.md b/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전.md new file mode 100644 index 0000000..650fc1e --- /dev/null +++ b/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전.md @@ -0,0 +1,502 @@ +deck:: Logseq/coding tip + +- ## **각 언어별 2차원 λ°°μ—΄(n*m) 생성** + - **Javascript** + - id:: 684578c3-84af-4595-af7a-dc46f58bd99b + 1. ν•œμ€„λ‘œ μ„ μ–Έν•˜κΈ°(2κ°€μ§€ 방법) + - ```javascript + const arr = Array.from({ length: n }, () => new Array(m).fill(0)); + + const arr = new Array(n).fill().map(() => new Array(m).fill(0)); + ``` + - id:: 68457909-49bf-4cab-b5fc-c61081c0aa0c + 2. 반볡문으둜 μ€‘μ²©ν•΄μ„œ μƒμ„±ν•˜κΈ° + - ```javascript + let arr = []; + for (let i = 0; i < n; i++) { + arr[i] = []; + for (let j = 0; j < m; j++) { + arr[i][j] = 0; + } + } + ``` + - id:: 684577c9-7ecc-4ac9-a959-40f1d7593b1b + 3. 값이 μ •ν•΄μ ΈμžˆλŠ” 경우 + - ```javascript + const arr = [ + [1, 2, 3], + [4, 5, 6], + [7, 8, 9] + ]; + ``` + - **python** + - id:: 82ac6ae7-4155-407c-ac0a-78f00ed46c6a + 1. ν•œμ€„λ‘œ μ„ μ–Έν•˜κΈ° + - ```python + arr = [[0]*m for _ in range(n)] + ``` +- +- ## **λ°°μ—΄κ΄€λ ¨ 팁 λͺ¨μŒ** + - **Javascript** + - **arr.every()** + - **κΈ°λ³Έ μ •μ˜** + id:: 68500a89-08d4-48b2-aa6b-c465041f065b + **λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œκ°€ 쑰건식을 λ§Œμ‘±ν•˜λŠ”μ§€ ν™•μΈν•΄μ„œ T/Fλ₯Ό λ°˜ν™˜ν•˜λŠ” λ§€μ„œλ“œ** + ```javascript + const arr = [1,2,3,4,5]; + arr.every((element, index, array) => {쑰건식}); + // element: ν˜„μž¬ μš”μ†Œ + // index: ν˜„μž¬ 인덱슀 (μƒλž΅ κ°€λŠ₯) + // array: 원본 λ°°μ—΄ (μƒλž΅ κ°€λŠ₯) + ``` + - **예제 : λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œκ°€ 같은 값인지 ν™•μΈν•˜λŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ‹œμ˜€.** + id:: 68500afb-beda-428b-bab7-e2dceb371325 + collapsed:: true + **μ˜ˆμ‹œ 배열은 arr1 = [5,5,5], arr2 = [5,4,5] 둜 μ„ μ–Έν•΄μ„œ ν•  것!** + - ```javascript + const arr1 = [5, 5, 5]; + const arr2 = [5, 4, 5]; + + arr1.every(v => v===arr1[0]); // true + arr2.every(v => v===arr2[0]); // false + ``` + - + - **arr.slice()** + - **κΈ°λ³Έ μ •μ˜** + id:: 68500c5b-9c05-4141-ab0c-3e179450bc03 + **λ°°μ—΄μ˜ μž…λ ₯ν•œ μΈλ±μŠ€λΆ€ν„° λκΉŒμ§€μ˜ 배열을 λ°˜ν™˜ν•˜λŠ” λ§€μ„œλ“œ** + **인덱슀 λ²”μœ„λ₯Ό μ΄ˆκ³Όν•΄λ„ 빈 배열을 λ°˜ν™˜ν•˜κΈ° λ•Œλ¬Έμ— μ—λŸ¬κ°€ μ—†μŒ** + ```javascript + const arr = [1,2,3,4,5]; + arr.slice(3); // [4,5] + arr.slice(5); // [] + ``` + - + - **arr.forEach()** + - **κΈ°λ³Έ μ •μ˜** + id:: 68500698-1dfa-4aff-9577-359f8fe63c99 + - ```javascript + const arr = [1,2,3,4,5]; + arr.forEach((element, index, array) => { + // element: ν˜„μž¬ μš”μ†Œ + // index: ν˜„μž¬ 인덱슀 (μƒλž΅ κ°€λŠ₯) + // array: 원본 λ°°μ—΄ (μƒλž΅ κ°€λŠ₯) + // μœ„μ˜ ν˜„μž¬ μš”μ†Œ 및 인덱슀, 원본배열은 νŽΈν•œκ±Έλ‘œ λ°”κΏ”μ„œ 선언해도 됨. + // μœ„μ— μ§€μ •ν•œ 것을 λ³€μˆ˜μ‚Όμ•„μ„œ forλ¬Έ μ•ˆμ˜ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ“― μ½œλ°±ν•¨μˆ˜λ₯Ό μ„ μ–Έ + // 그러면 forλ¬Έ 처럼 각 μš”μ†Œλ“€μ€ μˆœνšŒν•˜λ©° μ½”λ“œλ₯Ό 싀행함 + }); + ``` + - **반볡문 μ œμ–΄ ν•¨μˆ˜μΈ break, continue μ‚¬μš©λ²•** + id:: 685007a1-6eab-4601-b002-6e0724e064d8 + - breakλŠ” μ‚¬μš© λΆˆκ°€(κΌ­ ν•„μš”ν•˜λ‹€λ©΄ κ·Έλƒ₯ for, while, do whlie을 μ“Έ 것!) + - continueλŠ” return 으둜 λŒ€μ²΄ν•΄μ„œ μ‚¬μš©ν•¨.(ν˜„μž¬ μΈλ±μŠ€μ— λŒ€ν•œ 순회λ₯Ό κ·Έμ¦‰μ‹œ 끝내고 λ‹€μŒμœΌλ‘œ λ„˜μ–΄κ°) + - 예제 + ```javascript + const arr = [1,2,3,4,5]; + arr.forEach(v => { + if(v===3) return; + console.log(v); + }); + + // 좜λ ₯(κ°œν–‰μ€ μƒλž΅ν•¨) + // 1 2 4 5 + ``` + - + - **arr.reduce()** + - **κΈ°λ³Έ μ •μ˜** + id:: 685698f1-be84-4d2a-9440-256b6831989d + - ```javascript + // arr.reduce(<μ½œλ°±ν•¨μˆ˜>,<λˆ„μ λ³€μˆ˜μ˜ μ΄ˆκΈ°κ°’>) + arr.reduce((accumulator, currentValue, currentIndex, array)=> <ν•¨μˆ˜μ½”λ“œ>, <λˆ„μ μžμ˜ μ΄ˆκΈ°κ°’>) + // accumulator: 이전 μš”μ†Œλ₯Ό μƒλŒ€λ‘œ 콜백 ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•œ κ²°κ³Ό (λˆ„μ μž) + // currentValue: ν˜„μž¬ μš”μ†Œμ˜ κ°’ + // currentIndex: ν˜„μž¬ μš”μ†Œμ˜ 인덱슀 (μƒλž΅κ°€λŠ₯) + // array: reduce() λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜λŠ” λ°°μ—΄ (μƒλž΅κ°€λŠ₯) + ``` + - λ°°μ—΄μ˜ 각 μš”μ†Œλ³„λ‘œ λˆ„μ μžλ₯Ό κ³„μ‚°ν•˜κ³  μ΅œμ’…μ μœΌλ‘œ λͺ¨λ“  μš”μ†Œλ₯Ό μˆœνšŒν•œ λ’€μ˜ λˆ„μ μžλ₯Ό 리턴함. + - **μ˜ˆμ‹œ (1-10κΉŒμ§€μ˜ 합을 κ΅¬ν•˜κΈ°)(1-10κΉŒμ§€ 배열을 ν•œμ€„λ‘œ μ„ μ–Έν•œ λ’€ κ·Έ λ°°μ—΄μ˜ 합을 κ΅¬ν•˜λŠ” λ°©μ‹μœΌλ‘œ)** + id:: 68569a43-c4bc-4aaf-b07b-aeef8599a43f + - ```javascript + const arr = Array.from({length : 10}, (v,i)=> v=i+1); + const sum = arr.reduce((acc, val) => acc + val, 0); + console.log(sum); // 55 + ``` + - + - **arr.sort()** + - arr의 데이터듀을 μ˜€λ¦„μ°¨μˆœμœΌλ‘œ 정리함. + id:: 68595f48-e964-47fe-9b89-9f0aa4eeed3e + - κΈ°λ³Έμ μœΌλ‘œλŠ” 데이터듀을 λ¬Έμžμ—΄λ‘œ 보고 μ •λ ¬ν•˜κΈ° λ•Œλ¬Έμ— μˆ«μžκ°€ μ œλŒ€λ‘œ μ •λ ¬λ˜μ§€ μ•ŠλŠ” κ²½μš°κ°€ 있음. + - λ§€μ„œλ“œ κ΄„ν˜Έ μ•ˆμ— μ½œλ°±ν•¨μˆ˜λ₯Ό λ„£μ–΄μ„œ μˆ«μžλ“€μ„ μ •ν™•ν•˜κ²Œ μ˜€λ¦„μ°¨μˆœ ν˜Ήμ€ λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ μ •λ ¬ν•  수 있음. + - μ˜€λ¦„μ°¨μˆœ + id:: 68595fed-e1f0-4fb3-8c27-6650027c0749 + - ```javascript + let arr = [10,5,7,2]; + arr.sort((a,b)=>a-b); + console.log(arr) // 2,5,7,10 + ``` + - λ‚΄λ¦Όμ°¨μˆœ + id:: 6859607c-2839-490a-9f49-8ba86607905c + - ```javascript + let arr = [10,5,7,2]; + arr.sort((a,b)=>b-a); + console.log(arr) // 10,7,5,2 + ``` + - **python** + - **arr.count(value)** + id:: 6857c84c-711b-4865-ba82-92c2d81c0e0b + - 리슀트 ν˜Ήμ€ λ¬Έμžμ—΄μ—μ„œ νŠΉμ • κ°’μ˜ 개수λ₯Ό λ¦¬ν„΄ν•˜λŠ” λ§€μ„œλ“œ + - ```python + string = "aaabbcccc" + print(string.count('a')) # 3 + print(string.count('b')) # 2 + print(string.count('c')) # 4 + + arr = [1,2,2,3,3,3,4,4,4,4] + print(arr.count(1)) # 1 + print(arr.count(2)) # 2 + print(arr.count(3)) # 3 + print(arr.count(4)) # 4 + ``` + - **arr.sort()**-1 + id:: 685960df-7858-4413-b448-1b34facec439 + - 리슀트λ₯Ό μ •λ ¬ν•˜λŠ” λ§€μ„œλ“œ. + - 리슀트λ₯Ό μ •λ ¬ν•΄μ„œ κΈ°μ‘΄ 리슀트λ₯Ό μ •λ ¬λœ ν˜•νƒœλ‘œ λ°”κΏˆ. + - arr.sort(reverse=True) μ΄λ ‡κ²Œ ν•˜λ©΄ λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ 정렬됨. + - μ˜ˆμ œμ½”λ“œ + id:: 685961bd-0be6-49ff-9a07-f5b2eb371030 + - ```python + arr = [5,8,2,4,9] + arr.sort() # 2 4 5 8 9 + arr.sort(reverse=True) # 9 8 5 4 2 + ``` + - **sorted(arr)** + id:: 6859617a-f536-4f57-9cfd-6e4291369c1a + - μž…λ ₯ν•œ 리슀트λ₯Ό μ •λ ¬ν•΄μ„œ μƒˆλ‘œμš΄ 리슀트λ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜ + - κΈ°λ³Έμ μœΌλ‘œλŠ” μ˜€λ¦„μ°¨μˆœμ •λ ¬μ΄κ³ , sorted(arr, reverse=True) 둜 ν•˜λ©΄ λ‚΄λ¦Όμ°¨μˆœμž„. + - μ˜ˆμ œμ½”λ“œ + id:: 68596251-f733-4854-902e-faf055a64330 + - ```python + arr = [5,8,2,4,9] + arr1 = sorted(arr) + arr2 = sorted(arr, reverse=True) + print(arr1) # 2 4 5 8 9 + print(arr2) # 9 8 5 4 2 + ``` + - +- +- ## **μ§„μˆ˜λ³€ν™˜ μ•Œκ³ λ¦¬μ¦˜** + - **Bμ§„μˆ˜ 숫자 N을 10μ§„μˆ˜λ‘œ λ°”κΎΈλŠ” 법(λˆ„μ κ³± 방식)** + id:: 68458948-9821-42c7-bb19-85d7c7ad4b8d + - N의 μ™Όμͺ½λΆ€ν„° ν•œ μžλ¦¬μ”© λˆ„μ ν•΄μ„œ κ³±ν•˜κ³  λ”ν•˜λŠ” 방식 + - μ•Œκ³ λ¦¬μ¦˜ + - μ΅œμ’…κ²°κ³Ό resλ₯Ό 0으둜 μ΄ˆκΈ°ν™” + - λ°˜λ³΅λ¬Έμ„ 톡해 N의 μ™Όμͺ½μˆ«μžλΆ€ν„° ν•˜λ‚˜μ”© μˆœνšŒν•¨. + - μˆœνšŒν•˜λ©΄μ„œ 읽은 값을 10μ§„μˆ˜λ‘œ λ°”κΎΈκ³ (A=10, B=11...) κ·Έ 값은 val에 μ €μž₯. + - res = res*B + val + - λ°˜λ³΅λ¬Έμ„ λͺ¨λ‘ 돌고 λ‚˜λ©΄ μ΅œμ’…μ μœΌλ‘œ res에 λ³€ν™˜κ°’μ΄ λ“€μ–΄κ°€μžˆμŒ. + - **10μ§„μˆ˜ 숫자 N을 Bμ§„μˆ˜λ‘œ λ°”κΎΈλŠ” 법(λ‚˜λ¨Έμ§€ 계산법)** + id:: 68458b0d-5584-48bf-8bb4-aad6449b0193 + - N을 B둜 계속 λ‚˜λˆ„λ©΄μ„œ κ·Έλ•Œλ§ˆλ‹€ λ‚˜λ¨Έμ§€κ°’μ„ 톡해 λ³€ν™˜ν•˜λŠ” 방식 + - μ•Œκ³ λ¦¬μ¦˜ + - μ΅œμ’… κ²°κ³Ό λ¬Έμžμ—΄ resλ₯Ό μ„ μ–Έ. + - N이 0이 될 λ•ŒκΉŒμ§€ λ°˜λ³΅λ¬Έμ„ μˆœνšŒν•¨. + - val에 N을 B둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€ 값을 μ €μž₯. + - val값을 진법에 맞게 λ³€ν™˜ν•΄μ„œ res에 λ„£μŒ.(μ•žμ—μ„œ λΆ€ν„° λ„£λŠ”λ‹€) + - N을 B둜 λ‚˜λˆˆ λͺ«μœΌλ‘œ N을 μž¬μ„ μ–Έ(N=N//B) + - μœ„μ˜ 과정을 λ°˜λ³΅ν•œ λ’€ λ°˜λ³΅λ¬Έμ„ λΉ μ Έλ‚˜μ˜€λ©΄ resμ—λŠ” μ΅œμ’… λ³€ν™˜κ²°κ³Όκ°€ μ—­μˆœμœΌλ‘œ λ“€μ–΄κ°€μžˆμŒ. +- +- ## **μ†Œμˆ˜μ  올림 μ—°μ‚°** + - **ceilν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 방법** + id:: 68494b21-76da-4013-a61a-8c8cd812e253 + - ```python + ceil(x/y) = (x+y-1)//y + ``` +- +- ## **μ΅œμ†Œκ³΅λ°°μˆ˜/μ΅œλŒ€κ³΅μ•½μˆ˜ κ΅¬ν•˜κΈ° (μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•)** + - **μ΅œλŒ€κ³΅μ•½μˆ˜(GCD) κ΅¬ν•˜κΈ°** + id:: 685d3d73-9ff0-4ec5-88b0-913cc9d52da5 + - 두 수 a,bκ°€ μžˆμ„ λ•Œ, aλ₯Ό b둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€λ₯Ό r이라 ν•˜λ©΄ a와 b의 μ΅œλŒ€κ³΅μ•½μˆ˜λŠ” b와 r의 μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ κ°™λ‹€. + - 즉 μœ„μ˜ 과정을 계속 λ°˜λ³΅ν•΄μ„œ λ‚˜λ¨Έμ§€κ°€ 0이 될 λ•ŒκΉŒμ§€ λ°˜λ³΅ν•˜λ©΄ 0이되기 μ§μ „μ˜ μˆ˜κ°€ μ΅œλŒ€ κ³΅μ•½μˆ˜κ°€ λœλ‹€. + - 이것은 반볡문으둜, λ˜λŠ” μž¬κ·€ν•¨μˆ˜λ‘œ ꡬ할 수 μžˆλ‹€. + - μ˜ˆμ œμ½”λ“œ(파이썬 κΈ°μ€€) + - μž¬κ·€ν•¨μˆ˜λ‘œ κ΅¬ν˜„ + id:: 685d3e0d-40b4-4dd8-a43e-75ee4044f0a6 + - ```python + def GCD(a,b) : + x = max(a,b) + y = min(a,b) + if x%y == 0 : + return y + else : + return GCD(y, x%y) + + a = 18 + b = 24 + print(GCD(a,b)) # 6 + ``` + - 반볡문으둜 κ΅¬ν˜„ + id:: 685d3fbd-eaa7-438f-b0dc-ab5bfbe9acac + - ```python + a = 18 + b = 24 + + while b != 0: + r = a % b + a = b + b = r + + print(a) # 6 + + ``` + - **μ΅œμ†Œκ³΅λ°°μˆ˜(LCM) κ΅¬ν•˜κΈ°** + - 두 수 a,b와 κ·Έ 수의 μ΅œλŒ€κ³΅μ•½μˆ˜(GCD)λ₯Ό μ•Œλ©΄ a,b의 μ΅œμ†Œκ³΅λ°°μˆ˜λŠ” λ‹€μŒκ³Ό κ°™λ‹€. + id:: 685d41ca-1832-434c-a919-0f67a2a37ec0 + - LCM = (a*b) / GCD(a,b) +- +- ## **파이썬, μžλ°”μŠ€ν¬λ¦½νŠΈ 반볡문 순회 및 객체/λ”•μ…”λ„ˆλ¦¬ 순회** + - ### **β–Ί 일반적인 λ°˜λ³΅κ°€λŠ₯ 객체λ₯Ό ν™œμš©ν•œ 반볡문 순회(κΈ°λ³Έ 순회)** + - **● pythron** + id:: 684e9cfd-e828-43ac-9f6c-76492bdcf94a + - ```python + arr = [1,2,3,4,5] + + for i in arr : + print(i) + + # 좜λ ₯ + # 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)을 κ°€μ§€λŠ” λ°μ΄ν„°μ˜ μ§‘ν•©(각각의 μ–Έμ–΄μ—μ„œ μ„œλ‘œ λ™μΌν•˜λ‹€κ³  생각해도 무방함)** + - **β—Ž μ„ μ–Έ 및 접근방법** + - **● pythron** + id:: 684e9fb3-3cf0-4fa0-8539-e53bfe7fbcc1 + - ```python + # λΉˆλ°μ΄ν„° μ΄ˆκΈ°ν™” 방법 + dic = {} # dict() + + # 직접 μ„ μ–Έ 방법 + dic = { + "name": "Yechan", + "age" : 30 + } + + # 좜λ ₯ + print(dic["name"]) + print(dic["age"]) + # 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 + - ```python + dic = { + "name": "Yechan", + "age" : 30 + } + + # key 순회 + for key in dic : + print(dic[key]) + # Yechan + # 30 + + # key, value 순회 + for key, value in dic.items() : + print(key, value) + # 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()** + id:: 6857c511-ce76-4075-ba45-a38956deb7df + - λ°˜λ³΅κ°€λŠ₯ν•œ λ°μ΄ν„°μ…‹μ˜ κ°’κ³Ό 인덱슀λ₯Ό νŠœν”Œν˜•νƒœλ‘œ λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜ + id:: 6857c541-93f0-441f-8ff1-ca3cf8a3b186 + - ```python + arr = ["apple", "banana", "cat"] + for i in enumerate(arr) : + print(i) + # 좜λ ₯ + # (0, apple) + # (1, banana) + # (2, cat) + ``` + - λ°˜λ³΅λ¬Έμ—μ„œ μΈλ±μŠ€μ™€ 값을 λ™μ‹œμ— μˆœνšŒν•  수 있음. + id:: 6857c6b6-3201-47a1-a090-c0ebe75d5e4c + - ```python + arr = ["apple", "banana", "cat"] + for index, value in enumerate(arr) : + print(index, value) + # 좜λ ₯ + # 0 apple + # 1 banana + # 2 cat + ``` + - μ‹œμž‘ 인덱슀λ₯Ό λ°”κΏ€ μˆ˜λ„ 있음. + id:: 6857c623-b8e4-4325-a8c2-27a9446118bd + - ```python + arr = ["apple", "banana", "cat"] + for index, value in enumerate(arr, start=1) : + print(index, value) + # 좜λ ₯ + # 1 apple + # 2 banana + # 3 cat + ``` + - +- +- ## **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(배타적 논리합)** + - 기호 : ^ + id:: 684eaf61-54bb-4f69-af87-f75f280bd119 + - μ—°μ‚°κ°’ : (0,0)->0, (0,1)->1, (1,0)->1, (1,1)->0 [κ°™μœΌλ©΄ 0, λ‹€λ₯΄λ©΄ 1] + id:: 684eafb2-7091-4d69-8c3f-0540d687b782 + - ν•΅μ‹¬μ„±μ§ˆ + id:: 684eaff6-5a2b-4cdd-ba5d-cba163b087fa + - 같은 값끼리 XORν•˜λ©΄ 0이 λœλ‹€: `a ^ a = 0` + - 0κ³Ό XORν•˜λ©΄ 자기 μžμ‹ μ΄ λœλ‹€: `a ^ 0 = a` + - κ΅ν™˜λ²•μΉ™, 결합법칙이 μ„±λ¦½ν•œλ‹€: `a ^ b = b ^ a`, `(a ^ b) ^ c = a ^ (b ^ c)` + - ν™œμš© + id:: 684eb038-f987-419b-b531-2b7a868c0842 + - μ€‘λ³΅λ˜λŠ” μ—¬λŸ¬ μˆ˜λ“€ 쀑에 단 ν•˜λ‚˜ λ‹€λ₯Έ 수λ₯Ό μ°ΎλŠ” λ°©λ²•μœΌλ‘œ ν™œμš© + id:: 684eb045-4df8-4943-bdfb-65f983f2704e + - λͺ¨λ“  수λ₯Ό ν•˜λ‚˜ν•˜λ‚˜ xorν•˜λ©΄ κ²°κ΅­ μ΅œμ’…μ μœΌλ‘œ λ‚˜μ˜€λŠ” κ²°κ³ΌλŠ” λ‹€λ₯Έ ν•˜λ‚˜κ°€ λ‚˜μ˜΄. + - ```C + int arr[] = {1, 2, 3, 2, 1}; + int res = 0; + for(int i=0; i<5; i++) res ^= arr[i]; + // res == 3 (짝이 μ—†λŠ” κ°’) + ``` + - μ€‘λ³΅λ˜λŠ” μˆ˜κ°€ ν™€μˆ˜κ°œλ‘œ 짝지어져 있으면 μ‚¬μš©ν•  수 μ—†μŒ + - 단 단 ν•˜λ‚˜μ˜ 수λ₯Ό μ œμ™Έν•œ λͺ¨λ“  μˆ˜κ°€ 같은 숫자라면 μ‚¬μš© κ°€λŠ₯ + - μž„μ‹œλ³€μˆ˜ 없이 두 λ³€μˆ˜μ˜ 값을 swap + id:: 684eb1a1-f13d-45c3-b03b-da9372da5e7c + - XOR μ—°μ‚°μ˜ μ„±μ§ˆμ„ 잘 μ‘μš©ν•˜λ©΄ μ•„λž˜μ˜ μ½”λ“œμ²˜λŸΌ 두 λ³€μˆ˜λ₯Ό κ΅ν™˜ν•  수 있음. + - ```C + int a = 3; + int b = 5; + + a = a ^ b; + b = a ^ b; + 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 diff --git a/pages/πŸ“‹ Index Page.md b/pages/πŸ“‹ Index Page.md index 5729742..1a212d0 100644 --- a/pages/πŸ“‹ Index Page.md +++ b/pages/πŸ“‹ Index Page.md @@ -1,3 +1,4 @@ - [[πŸ”€ μ˜μ–΄κ³΅λΆ€]] - [[πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ]] +- [[πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전]] - \ No newline at end of file