Welcome to DOTORI World
🐿

2021λ…„ 11μ›” 15일에 κ°œμ„€λœ λ™κ΅­λŒ€ν•™κ΅ μ•Œκ³ λ¦¬μ¦˜ μŠ€ν„°λ”” κ·Έλ£Ήμž…λ‹ˆλ‹€.

μ•Œκ³ λ¦¬μ¦˜ 풀이 μ–Έμ–΄λŠ” νŒŒμ΄μ¬μž…λ‹ˆλ‹€.

λ°±μ€€ λ‹¨κ³„λ³„λ‘œ ν’€κΈ° μ™„λ£Œ ν›„, ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 문제 ν’€μ΄λ‘œ λ„˜μ–΄κ°‘λ‹ˆλ‹€.

1일 1컀밋(1문제 이상 풀이)을 λͺ©ν‘œλ‘œ ν•˜λ©°, μ£Ό 1회 μ½”λ“œ 리뷰λ₯Ό μ§„ν–‰ν•©λ‹ˆλ‹€.

문제 풀기전에 본인 μ•Œκ³ λ¦¬μ¦˜ μ‹œκ°„λ³΅μž‘λ„ λŒ€λž΅ 계산해본 ν›„ 코딩을 μ‹œμž‘ν•©λ‹ˆλ‹€.
πŸ‘‰
μ‹œκ°„λ³΅μž‘λ„ 계산


βœ…
파일 및 폴더 ꡬ쑰

  • λ°±μ€€
    /κΉƒν—ˆλΈŒμ•„μ΄λ””/ν”Œλž«νΌ/μΉ΄ν…Œκ³ λ¦¬/문제번호.py ν˜•μ‹μœΌλ‘œ μ—…λ‘œλ“œν•΄μ£Όμ„Έμš”.
    • μ˜ˆμ‹œ 01: /leeez0128/backjoon/DFS와 BFS/1260.py
  • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€
    /κΉƒν—ˆλΈŒμ•„μ΄λ””/ν”Œλž«νΌ/μΉ΄ν…Œκ³ λ¦¬ or 문제 λͺ¨μŒ/문제λͺ….py ν˜•μ‹μœΌλ‘œ μ—…λ‘œλ“œν•΄μ£Όμ„Έμš”.
    • μ˜ˆμ‹œ 01: /leeez0128/programmers/ν•΄μ‹œ/μ™„μ£Όν•˜μ§€_λͺ»ν•œ_μ„ μˆ˜.py
    • μ˜ˆμ‹œ 02: /leeez0128/programmers/2021 KAKAO BLIND RECRUITMENT/μ‹ κ·œ_아이디_μΆ”μ²œ.py


βœ…
μŠ€ν„°λ”” κ·œμΉ™

1. μ†Œν†΅ 방법

ν•΄λ‹Ή λ ˆνŒŒμ§€ν† λ¦¬λŠ” Slackκ³Ό μ—°λ™λ˜μ–΄ λͺ¨λ“  컀밋은 Slack μ•Œλ¦ΌμœΌλ‘œ 뜨게 λ©λ‹ˆλ‹€.
νƒœκ·Έλ‚˜ ν”Όλ“œλ°±μ΄ ν•„μš”ν•œ 경우, Slack의 λ©˜μ…˜κ³Ό μŠ€λ ˆλ“œλ₯Ό μ΄μš©ν•˜μ—¬ μž‘μ„±ν•©λ‹ˆλ‹€.

2. μ£Ό 1회 μ½”λ“œλ¦¬λ·°

λŒ€λ©΄/λΉ„λŒ€λ©΄ 혼용 λ°©μ‹μœΌλ‘œ 맀주 ν† μš”μΌ 저녁에 μ§„ν–‰ν•©λ‹ˆλ‹€.

3. 풀이 κ³ λ―Ό μ‹œκ°„ : 30λΆ„~60λΆ„

μ΅œμ†Œ 30λΆ„ 이상 문제 풀이방법에 λŒ€ν•΄ κ³ λ―Όν•©λ‹ˆλ‹€.
ν•œ μ‹œκ°„ κ²½κ³Ό ν›„μ—λŠ” μ†”λ£¨μ…˜μ„ μ°Ύμ•„ κ³΅λΆ€ν•˜λ©°, μ†”λ£¨μ…˜μ„ μ°Έκ³ ν•˜μ—¬ ν’€μ΄ν•œ 방식은 μ½”λ“œ 리뷰에 ν•„μˆ˜μ μœΌλ‘œ ν¬ν•¨λ©λ‹ˆλ‹€.

4. 컀밋 메세지 μž‘μ„± 방법

[κΉƒν—ˆλΈŒμ•„μ΄λ””] μΉ΄ν…Œκ³ λ¦¬ 문제번호.py

  • μ˜ˆμ‹œ 01: [leeez0128] I/O 2557.py


βœ…
μ•Œκ³ λ¦¬μ¦˜ κ·œμΉ™

1. λͺ…ν™•ν•œ λ³€μˆ˜λͺ…κ³Ό 둜직

μ½”λ“œλ¦¬λ·°μ˜ 가독성을 μœ„ν•΄, λ³€μˆ˜λͺ…κ³Ό λ‘œμ§μ„ λͺ…ν™•ν•˜κ²Œ ν•˜λ„λ‘ λ…Έλ ₯ν•©λ‹ˆλ‹€.
ν˜„μ—…μ—μ„œ λ‚΄κ°€ μ§  μ½”λ“œλ₯Ό λ‚˜ ν˜Ήμ€ λ‹€λ₯Έ μ‚¬λžŒμ΄ 이해할 수 있게 μ§œλŠ” λ°°λ €κ°€ μ€‘μš”ν•©λ‹ˆλ‹€.
주석을 달지 μ•Šμ•„λ„ 이해할 수 μžˆμ„ μ •λ„μ˜ μ½”λ“œλ₯Ό μ§œλ΄…μ‹œλ‹€.

2. PEP 8 μŠ€νƒ€μΌ μ€€μˆ˜

☝️
pycodestyle λͺ¨λ“ˆμ„ μ„€μΉ˜ν•©λ‹ˆλ‹€. (ꡬ. pep8 λͺ¨λ“ˆ)

pip install pycodestyle

✌️
python μ½”λ“œλ₯Ό μž‘μ„±ν•œ ν›„, κ°€μ΄λ“œλ₯Ό μ€€μˆ˜ν–ˆλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.
(–show-source μ˜΅μ…˜μ€ λ―Έμ€€μˆ˜ μ†ŒμŠ€μ½”λ“œλ„ ν•¨κ»˜ 좜λ ₯ν•©λ‹ˆλ‹€)

pycodestyle --show-source mycode.py

🀟
κ²°κ³Όλ₯Ό ν™•μΈν•©λ‹ˆλ‹€.

πŸ‘‰
2가지 μš”μ†Œκ°€ λ―Έμ€€μˆ˜ μƒνƒœμž…λ‹ˆλ‹€
    
βœ”οΈ
ν•œμ€„μ— ν•œκ°œ λͺ¨λ“ˆμ„ import ν•˜λ„λ‘ ꢌμž₯ν•©λ‹ˆλ‹€ (E401)
    
βœ”οΈ
μ‰Όν‘œ(,) λ’€μ—λŠ” 곡백을 ꢌμž₯ν•©λ‹ˆλ‹€. (E231)

mycode.py:1:11: E401 multiple imports on one line
import sys, os
          ^
mycode.py:6:11: E231 missing whitespace after ','
def plus(x,y):
          ^
μ½”λ“œ μ•ž 2자리 μ •μ˜ E* W*
E1: Indentation W1: Indentation warning
E2: Whitespace W2: Whitespace warning
E3: Blank line W3: Blank line warning
E4: Import
E5: Line length W5: Line break warning
W6: Deprecation warning
E7: Statement
E9: Runtime


βœ…
참고사항

  • μž…μΆœλ ₯ μž…μΆœλ ₯을 μœ„ν•œ 예제 μ½”λ“œμž…λ‹ˆλ‹€. λΉ λ₯Έ μž…μΆœλ ₯을 μœ„ν•΄ λ‹€μŒκ³Ό 같이 μ‚¬μš©ν•œλ‹€κ³  ν•©λ‹ˆλ‹€. μ•„λž˜ μ½”λ“œλŠ” μ‚¬μš©μžμ˜ μž…λ ₯을 input().strip() 을 μ΄μš©ν•˜μ—¬ λ°›κ³ , λ¬Έμžμ—΄ λ§ˆμ§€λ§‰μ˜ 띄어쓰기λ₯Ό λ¬΄μ‹œν•œλ‹€λŠ” λœ»μž…λ‹ˆλ‹€. 그리고 .split()λ₯Ό 톡해 띄어쓰기λ₯Ό κ΅¬λΆ„ν•˜κ³  map(int, ….) λ₯Ό μ΄μš©ν•˜μ—¬ λ¬Έμžμ—΄μ„ intν˜•μœΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€.

  import sys 
  input = sys.stdin.readline
  
  M, N, K = map(int, input().strip().split())
  # μž…λ ₯ μ˜ˆμ‹œ ) 1 2 3
  print(f'{M} {N} {K}') # 1 2 3 좜λ ₯
  • ν•¨μˆ˜ν˜• if __name__ == "__main__": : μ•„λž˜μ—λŠ” 인풋 λ°›λŠ” λΆ€λΆ„κ³Ό mainν•¨μˆ˜ ν•˜λ‚˜λ§Œ μž‘μ„±ν•˜μ—¬ mainν•¨μˆ˜μ— 인풋을 λ°›μ•„μ„œ main ν•¨μˆ˜λ₯Ό μœ„μͺ½μ— κ΅¬ν˜„ν•˜λŠ” λ°©μ‹μœΌλ‘œ μ—°μŠ΅ν•΄λ΄…μ‹œλ‹€.

넀이버, 카카였, μ†Œλ§ˆ λ“± ꡬ름, ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 기반의 μ½”ν…Œ μ‚¬μ΄νŠΈλ“€μ„ μ‚¬μš©ν•˜λŠ” μ½”ν…ŒλŠ” ν•¨μˆ˜ν˜•μœΌλ‘œ μ•Œκ³ λ¦¬μ¦˜ 문제λ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€.

 import sys
 input = sys.stdin.readline
 
 def myFunction(param):
   answer = []
   ...
   
   return answer[]

 if __name__ == "__main__":
     T = int(input().strip())
     for _ in range(0,T):
         ...
         myFunction([])
  • κ°•μ œμ’…λ£Œ

 sys.exit(0)
 # sys.exit(1)ν•˜λ©΄ λŸ°νƒ€μž„μ—λŸ¬ λ°œμƒ

GitHub

View Github