λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

🐍 Python

(21)
[python] PEP 8(μ½”λ”© μŠ€νƒ€μΌ κ°€μ΄λ“œ) -- Style Guide for Python Code & 파이썬의 λ³€μˆ˜ 이름 κ·œμΉ™ 1. PEP8μ΄λž€ 파이썬 곡식 ν™ˆνŽ˜μ΄μ§€μ—μ„œ PEP8λ₯Ό μ•„λž˜μ™€ 같이 μ†Œκ°œν•˜κ³  μžˆλ‹€. This document gives coding conventions for the Python code comprising the standard library in the main Python distribution. Please see the companion informational PEP describing style guidelines for the C code in the C implementation of Python. - python PEP8 Introduction PEP8은 "python μ½”λ“œμ— λŒ€ν•œ μ½”λ”© κ·œμΉ™"을 μ œκ³΅ν•œλ‹€. 곡식 λ¬Έμ„œ λ‚΄μš©μ„ 확인해 보면, python을 λ§Œλ“  Guido van Rossum..
[OOP] (4) 좔상화(Abstraction) : docstring, type hinting, 정적 동적 νƒ€μž… μ–Έμ–΄ HelloπŸ‘‹ I'm Dona!:) 객체 지ν–₯ν”„λ‘œκ·Έλž˜λ° μ˜μ–΄λ‘œλŠ” OOP(Object-Oriented-Programming) μ •λ¦¬ν•˜κΈ° 4탄! 🏑 πŸ” λ“€μ–΄κ°€λ©° : ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μΆ”μƒν™”λž€? λ³€μˆ˜, ν•¨μˆ˜, 클래슀λ₯Ό μ‚¬μš©ν•΄ μ‚¬μš©μžκ°€ κΌ­ μ•Œμ•„μ•Όλ§Œ ν•˜λŠ” λΆ€λΆ„λ§Œμ„ κ²‰μœΌλ‘œ λ“œλŸ¬λ‚΄λŠ” 것 ν”„λ‘œκ·Έλž˜λ¨Έλ“€μ΄ νŠΉμ • μ½”λ“œλ₯Ό μ‚¬μš©ν•  λ•Œ, ν•„μˆ˜μ μΈ 정보λ₯Ό μ œμ™Έν•œ 세뢀사항을 κ°€λ¦¬λŠ” 것 λ³€μˆ˜ 좔상화, ν•¨μˆ˜ 좔상화, 클래슀 좔상화 등이 μžˆλ‹€. μΆ”μƒν™”λž€, " λ³΅μž‘ν•œ λ‚΄μš©μ€ 숨기고, μ£Όμš” κΈ°λŠ₯μ—λ§Œ μ‹ κ²½μ“°λŠ” 것 " 1. 좔상화 μž˜ν•˜κΈ° : 이름 잘 짓기 클래슀, λ³€μˆ˜, λ©”μ†Œλ“œμ˜ 이름을 어디에 μ“Έ 수 있고, μ–΄λ–»κ²Œ μ‚¬μš©ν•˜λŠ”μ§€ μ§κ΄€μ μœΌλ‘œ μœ μΆ”λ˜λŠ” 이름을 μ‚¬μš©ν•˜μž λ³€μˆ˜ 이름에 λŒ€ν•œ κ·œμΉ™μ΄ κΆκΈˆν•˜λ‹€λ©΄ PEP8을 μ°Έκ³ ν•˜μž - python PEP8(μ½”λ”© μŠ€νƒ€μΌ..
[OOP] (3) λ©”μ†Œλ“œμ˜ μ’…λ₯˜ : μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œ, 클래슀 λ©”μ†Œλ“œ, 정적 λ©”μ†Œλ“œ (with 파이썬 μ½”λ“œ) & νŠΉμˆ˜λ©”μ†Œλ“œ HelloπŸ‘‹ I'm Dona!:) 객체 지ν–₯ν”„λ‘œκ·Έλž˜λ° μ˜μ–΄λ‘œλŠ” OOP(Object-Oriented-Programming) μ •λ¦¬ν•˜κΈ° 3탄! 🏑 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ, 클래슀 μ•ˆμ—μ„œ μ‚¬μš©λ˜λŠ” ν•¨μˆ˜μΈ λ©”μ†Œλ“œμ˜ μ’…λ₯˜μ—λŠ” 크게 3가지가 μžˆλ‹€. μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ˜ 값을 μ½κ±°λ‚˜ μ„€μ •ν•˜λŠ” λ©”μ†Œλ“œμΈ μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œ(instance method) 클래슀 λ³€μˆ˜μ˜ 값을 μ½κ±°λ‚˜ μ„€μ •ν•˜λŠ” λ©”μ†Œλ“œμΈ 클래슀 λ©”μ†Œλ“œ(class method) μΈμŠ€ν„΄μŠ€ λ³€μˆ˜, 클래슀 λ³€μˆ˜λ₯Ό μ „ν˜€ 닀루지 μ•ŠλŠ” λ©”μ†Œλ“œμΈ 정적 λ©”μ†Œλ“œ(static method) μ°¨κ·Όμ°¨κ·Ό μ½”λ“œμ™€ ν•¨κ»˜ μ•Œμ•„λ³΄μžπŸ‘€ 1. μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œ(instance method) μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ˜ 값을 μ½κ±°λ‚˜ μ„€μ •ν•˜λŠ” λ©”μ†Œλ“œ μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 방법 (2번 방법을 많이 μ‚¬μš©ν•œλ‹€) {클래슀 이..
[OOP] (2) μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ™€ 클래슀 λ³€μˆ˜ HelloπŸ‘‹ I'm Dona!:) 객체 지ν–₯ν”„λ‘œκ·Έλž˜λ° μ˜μ–΄λ‘œλŠ” OOP(Object-Oriented-Programming)에 λŒ€ν•΄ μ •λ¦¬ν•˜κΈ° 2탄! 🏑 πŸ” μΈμŠ€ν„΄μŠ€ λ³€μˆ˜(instance variable) μ§€λ‚œ ν¬μŠ€νŒ…μ—μ„œ μ–ΈκΈ‰ν–ˆλ“―, μΈμŠ€ν„΄μŠ€λŠ” 객체λ₯Ό 싀체화 μ‹œν‚¨ κ²ƒμœΌλ‘œ 클래슀둜 λ§Œλ“€ 수 μžˆλ‹€. μ˜€λŠ˜λ„ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜ μœ„ν‚€λ°±κ³Όλ₯Ό λ¨Όμ € 짚고 λ„˜μ–΄κ°€μž ν΄λž˜μŠ€κ°€ μžˆλŠ” 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜(instance variable)λŠ” ν΄λž˜μŠ€μ— μ •μ˜λœ λ³€μˆ˜λ‘œ, μΈμŠ€ν„΄μŠ€ λ³€μˆ˜λŠ” 클래슀 λ³€μˆ˜μ™€ λΉ„μŠ·ν•˜λ‹€. μΈμŠ€ν„΄μŠ€ λ³€μˆ˜λŠ” 클래슀 λ³€μˆ˜κ°€ μ•„λ‹ˆμ§€λ§Œ μœ μ‚¬μ μ΄ μžˆλ‹€. 클래슀 속성(클래슀 ν”„λ‘œνΌν‹°, ν•„λ“œ, 데이터 멀버)의 일쒅이닀. ν΄λž˜μŠ€λŠ” μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œμ™€ 클래슀 λ©”μ†Œλ“œλ₯Ό λ‘˜ λ‹€ μ†Œμœ ν•  수 μžˆλ‹€. λ³€μˆ˜λŠ” μ˜€λΈŒμ νŠΈκ°€ 자기 μžμ‹ ..
[OOP] (1) 클래슀, 객체, μΈμŠ€ν„΄μŠ€, 객체지ν–₯ vs μ ˆμ°¨μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ° μ •μ˜ HelloπŸ‘‹ I'm Dona!:) 객체 지ν–₯ν”„λ‘œκ·Έλž˜λ° μ˜μ–΄λ‘œλŠ” OOP(Object-Oriented-Programming)λ₯Ό μ •λ¦¬ν•΄λ³΄μž! 🏑 πŸ” κ°μ²΄λž€? μš°μ„ , μœ„ν‚€λ°±κ³Όλ₯Ό λ¨Όμ € λœ―μ–΄λ³΄λ©΄ μ•„λž˜μ™€ 같이 μ •μ˜ν•˜κ³  μžˆλ‹€. 컴퓨터 κ³Όν•™μ—μ„œ 객체 λ˜λŠ” 였브젝트(object)λŠ” ν΄λž˜μŠ€μ—μ„œ μ •μ˜ν•œ 것을 ν† λŒ€λ‘œ λ©”λͺ¨λ¦¬(μ‹€μ œ μ €μž₯곡간)에 ν• λ‹Ήλœ κ²ƒμœΌλ‘œ ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©λ˜λŠ” 데이터 λ˜λŠ” μ‹λ³„μžμ— μ˜ν•΄ μ°Έμ‘°λ˜λŠ” 곡간을 μ˜λ―Έν•˜λ©°, λ³€μˆ˜, 자료 ꡬ쑰, ν•¨μˆ˜ λ˜λŠ” λ©”μ†Œλ“œκ°€ 될 수 μžˆλ‹€. ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” λ³€μˆ˜λ₯Ό μ΄μš©ν•΄ 객체에 μ ‘κ·Όν•˜λ―€λ‘œ 객체와 λ³€μˆ˜λΌλŠ” μš©μ–΄λŠ” μ’…μ’… ν•¨κ»˜ μ‚¬μš©λœλ‹€. κ·ΈλŸ¬λ‚˜ λ©”λͺ¨λ¦¬κ°€ ν• λ‹Ήλ˜κΈ° μ „κΉŒμ§€ κ°μ²΄λŠ” μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€. 클래슀? λ©”λͺ¨λ¦¬? μ‹λ³„μž? μ–΄λ €μš΄ 말이 μž”λœ© μžˆλŠ”λ°, μ‰½κ²Œ μ •μ˜ν•˜λ©΄ μ•„λž˜μ™€ 같이 생각할 수 μžˆλ‹€ ..
브루트포슀(Brute-force search) : λ°±μ€€ 14719 [λΉ—λ¬Ό] & 파이썬 브루트포슀 μ•Œκ³ λ¦¬μ¦˜μ„ κ³΅λΆ€ν•˜λ©΄μ„œ, λ°±μ€€ λ¬Έμ œμ—λ„ μ μš©μ„ ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€! πŸ‘€ 반볡 μˆ™λ‹¬μ„ 톡해 λ”μš± μ΅μˆ™ν•΄μ§€μž! πŸ† 참고둜 ν•΄λ‹Ή λ¬Έμ œλŠ” leet_codeμ—μ„œλ„ 찾을 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή λ¬Έμ œλ„ μ—…λ°μ΄νŠΈν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. μ£Όμ†ŒλŠ” 제일 μ•„λž˜ reference에 μΆ”κ°€ν•˜κ² μŠ΅λ‹ˆλ‹€. πŸ” Brute-force search κ·ΈλŒ€λ‘œ ν•΄μ„ν•˜λ©΄ "무차별 λŒ€μž… 검색" 의미 κ·ΈλŒ€λ‘œ, λ¬΄μ°¨λ³„μ μœΌλ‘œ κ°€λŠ₯ν•œ λͺ¨λ“  경우의 수λ₯Ό μ‹œλ„ν•΄ λ³΄λŠ” μ•Œκ³ λ¦¬μ¦˜ κ°€μž₯ μˆœμ§„ν•œ μ•Œκ³ λ¦¬μ¦˜ 접근법 예λ₯Ό λ“€μ–΄, λΉ„λ°€λ²ˆν˜Έ 4자리 μžλ¬Όμ‡ κ°€ μžˆλ‹€κ³  ν•˜λ©΄, 0000λΆ€ν„° 9999κΉŒμ§€ 전체λ₯Ό λ‹€ ν™•μΈν•˜λŠ” 것! μ΄λ―Έμ§€λŠ” μ—¬κΈ°μ—μ„œ 가지고 μ™”μŠ΅λ‹ˆλ‹€. πŸ‘ μž₯점 직관적이고 λͺ…ν™•ν•˜λ‹€ 닡을 ν™•μ‹€ν•˜κ²Œ 찾을 수 μžˆλ‹€ 😡‍πŸ’« 단점 λͺ¨λ“  경우λ₯Ό 보기 λ•Œλ¬Έμ— λΉ„νš¨μœ¨μ μž„ ➑️ 인풋이 컀질수둝 λΉ„νš¨μœ¨..
λ°±μ€€ 1929[μ†Œμˆ˜ κ΅¬ν•˜κΈ°] : 파이썬 & μ‹œκ°„μ΄ˆκ³Ό 해결방법 & μ†Œμˆ˜ νŒμ •, μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ 체 πŸ“Ž Problem https://www.acmicpc.net/problem/1929 1929번: μ†Œμˆ˜ κ΅¬ν•˜κΈ° 첫째 쀄에 μžμ—°μˆ˜ Mκ³Ό N이 빈 칸을 사이에 두고 주어진닀. (1 ≤ M ≤ N ≤ 1,000,000) M이상 Nμ΄ν•˜μ˜ μ†Œμˆ˜κ°€ ν•˜λ‚˜ 이상 μžˆλŠ” μž…λ ₯만 주어진닀. www.acmicpc.net πŸ“Ž Submission Code μ•Œκ³ λ¦¬μ¦˜ 문제λ₯Ό ν’€ λ•Œ, 1가지 λ°©μ‹μœΌλ‘œλ§Œ μ ‘κ·Όν•˜κΈ°λ³΄λ‹€λŠ” λ‹€μ–‘ν•œ λ°©λ²•μœΌλ‘œ μ ‘κ·Όν•˜λŠ” μŠ΅κ΄€μ„ κ°€μ§€μžπŸ‘ŠπŸ» # case 1 '''μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ 체 ν™œμš©ν•˜κΈ° : μ‹œκ°„μ„ 쀄이기 μœ„ν•΄μ„œ λ£¨νŠΈν•œ λΆ€λΆ„κΉŒμ§€λ§Œ for 반볡문''' import sys M, N = map(int, sys.stdin.readline().split()) prime_num = [] for i in range(M, N+1..
λ°±μ€€ 2108 [톡계학] : 파이썬 & κ΅¬ν˜„ ,μ •λ ¬ (with for 반볡문 & Counter & statistics) 3가지 λ°©λ²•μœΌλ‘œ 풀어보기 πŸ“Œ 문제 https://www.acmicpc.net/problem/2108 2108번: 톡계학 첫째 쀄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진닀. 단, N은 ν™€μˆ˜μ΄λ‹€. κ·Έ λ‹€μŒ N개의 μ€„μ—λŠ” μ •μˆ˜λ“€μ΄ 주어진닀. μž…λ ₯λ˜λŠ” μ •μˆ˜μ˜ μ ˆλŒ“κ°’μ€ 4,000을 λ„˜μ§€ μ•ŠλŠ”λ‹€. www.acmicpc.net πŸ” 풀이 총 세가지 λ°©λ²•μœΌλ‘œ ν’€μ–΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€. κ°œμΈμ μœΌλ‘œλŠ” Counter λͺ¨λ“ˆλ‘œ ν‘ΈλŠ” 방법이 κ°€μž₯ κΉ”λ”ν•˜κ³  λ§ˆμŒμ— λ“€μ—ˆμŠ΅λ‹ˆλ‹€πŸ₯• μ‚°μˆ ν‰κ· , 쀑앙값, λ²”μœ„λŠ” μ•„λž˜μ™€ 같이 λ¬Έμ œμ— κ·ΈλŒ€λ‘œ λ‚˜μ™€μžˆμ–΄μ„œ 뢀가적인 μ„€λͺ…은 ν•˜μ§€μ•Šκ² μŠ΅λ‹ˆλ‹€:) ν˜Ήμ‹œλ‚˜ κΆκΈˆν•˜μ‹œλ©΄ λŒ“κΈ€μ£Όμ‹œλ©΄ μ„€λͺ…λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€. μ‚°μˆ ν‰κ·  : N개의 μˆ˜λ“€μ˜ 합을 N으둜 λ‚˜λˆˆ κ°’ 쀑앙값 : N개의 μˆ˜λ“€μ„ μ¦κ°€ν•˜λŠ” μˆœμ„œλ‘œ λ‚˜μ—΄ν–ˆμ„ 경우 κ·Έ 쀑앙에 μœ„μΉ˜ν•˜λŠ” κ°’ μ΅œλΉˆκ°’ ..