From 3ee942a310d8894b895d320b5cf55bc4f03c7bba Mon Sep 17 00:00:00 2001 From: songyc macbook Date: Sat, 12 Jul 2025 22:29:57 +0900 Subject: [PATCH] 20250712 logseq --- pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ.md | 57 +++++++++++++++++++++- pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전.md | 70 --------------------------- 2 files changed, 56 insertions(+), 71 deletions(-) diff --git a/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ.md b/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ.md index b2c4005..d152a06 100644 --- a/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ.md +++ b/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ.md @@ -153,4 +153,59 @@ deck:: Logseq/coding tip ``` - ## **❖ C** - ## **❖ Java** -- ## **❖ ν”„λ‘œκ·Έλž˜λ° κ΄€λ ¨ 이둠 정리** \ No newline at end of file +- ## **❖ ν”„λ‘œκ·Έλž˜λ° κ΄€λ ¨ 이둠 정리** + - ### **β–Ί μ•Œκ³ λ¦¬μ¦˜** + - ### **β—ΌοΈŽ μ§„μˆ˜λ³€ν™˜ μ•Œκ³ λ¦¬μ¦˜** + - β—‰ **Bμ§„μˆ˜ 숫자 N을 10μ§„μˆ˜λ‘œ λ°”κΎΈκΈ°(λˆ„μ κ³±)** #card + 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 + id:: 6872521b-6fe5-4b65-a929-38c176052368 + - μ΅œμ’… λ³€ν™˜ κ²°κ³Ό result λ₯Ό λ°°μ—΄λ‘œμ„œ μ΄ˆκΈ°ν™” + - N이 0이 될 λ•ŒκΉŒμ§€ λ°˜λ³΅λ¬Έμ„ 돌림 + - val = N%B + - μ΄λ•Œ κ³„μ‚°λœ val값을 Bμ§„μˆ˜μ— 맞게 λ³€ν™˜μ—μ„œ result 배열에 μ‚½μž…. + - μ•žμ—μ„œλΆ€ν„° μˆœμ„œλŒ€λ‘œ λ„£λŠ”λ‹€. + - N = N//B + - result 배열을 맨 λ§ˆμ§€λ§‰ μΈλ±μŠ€λΆ€ν„° μ—­μˆœμœΌλ‘œ 읽으면 그것이 μ΅œμ’… λ³€ν™˜ κ²°κ³Ό. + - ### **β—ΌοΈŽ μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•(μ΅œμ†Œκ³΅λ°°μˆ˜, μ΅œλŒ€κ³΅μ•½μˆ˜ κ΅¬ν•˜κΈ°)** + - β—‰ **μ΅œλŒ€κ³΅μ•½μˆ˜(GCD) κ΅¬ν•˜κΈ°** #card #depth-2 + 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 μ˜ˆμ‹œμ½”λ“œ #card + 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) κ΅¬ν•˜κΈ°** #card + id:: 687256b1-be35-4052-a12e-133e2c3b2f50 + - 두 수 a,b와 κ·Έ 수의 μ΅œλŒ€κ³΅μ•½μˆ˜(GCD)λ₯Ό μ•Œλ©΄ a,b의 μ΅œμ†Œκ³΅λ°°μˆ˜(LCM)λŠ” λ‹€μŒκ³Ό κ°™λ‹€. + - LCM = (a * b) / GCD + - ### **β–Ί μ‚¬μ†Œν•œ ν…Œν¬λ‹‰** + - ### **β—ΌοΈŽ μ†Œμˆ˜μ  올림 μ—°μ‚°(ceil)** #card + 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/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전.md b/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전.md index 5b4bb23..7ce6b3f 100644 --- a/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전.md +++ b/pages/πŸ‘©πŸ»β€πŸ’»μ½”λ”© 팁 μ½”λ“œ λͺ¨μŒ_이전.md @@ -1,75 +1,5 @@ deck:: Logseq/coding tip -- -- ## **μ§„μˆ˜λ³€ν™˜ μ•Œκ³ λ¦¬μ¦˜** - - **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**