🧩 Algorithm/SWEA

[SWEA] 10200. κ΅¬λ…μž μ „μŸ (Python/D3)

devCloud 2024. 10. 26. 11:27
728x90

[문제 링크] πŸ‘‡

 

SW Expert Academy

SW ν”„λ‘œκ·Έλž˜λ° μ—­λŸ‰ 강화에 도움이 λ˜λŠ” λ‹€μ–‘ν•œ ν•™μŠ΅ 컨텐츠λ₯Ό ν™•μΈν•˜μ„Έμš”!

swexpertacademy.com


풀이

πŸ’‘ A + B κ°€ N λͺ… 이상일 λ•Œμ™€ μ΄ν•˜μΌ λ•Œλ‘œ κ΅¬λΆ„ν•œλ‹€.

  • A + B κ°€ N λͺ… 이상이면 A + B μ—μ„œ N 을 λΊ€ 게 μ΅œμ†Œκ°€ λœλ‹€.
  • μ΄ν•˜μ΄λ©΄ μ΅œμ†Œ κ΅¬λ…μžλŠ” 0이닀.
  • μ΅œλŒ€ κ΅¬λ…μžλŠ” λ™μΌν•˜κ²Œ A, B λ‘˜ 쀑에 더 μž‘μ€ 값이 λœλ‹€.

 

Solution

T = int(input())
for test_case in range(1, T + 1):
    N, A, B = map(int, input().split())
    if A + B > N:
        sub_max = min(A, B)
        sub_min = A + B - N
    else:
        sub_max = min(A, B)
        sub_min = 0
    print(f"#{test_case} {sub_max} {sub_min}")

 

μˆ˜μ • 포인트

  • 쀑볡 μ½”λ“œ 정리
    • sub_maxλŠ” min(A, B)둜 항상 같은 λ°©μ‹μœΌλ‘œ κ³„μ‚°λ˜λ―€λ‘œ if λ¬Έ λ°”κΉ₯μ—μ„œ ν•œλ²ˆλ§Œ 계산해도 λ©λ‹ˆλ‹€.
  • 쑰건문 λ‹¨μˆœν™”
    • sub_min을 계산할 λ•Œ, A + B > N인 κ²½μš°μ™€ κ·Έλ ‡μ§€ μ•Šμ€ 경우둜 λ‚˜λˆ„μ—ˆμœΌλ―€λ‘œ, if 문으둜 sub_min을 직접 계산할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • λ³€μˆ˜μ™€ μ½”λ“œμ˜ 가독성 ν–₯상
    • λ³€μˆ˜ 이름을 μ„€λͺ…ν•˜λŠ” 주석을 μΆ”κ°€ν•˜λ©΄ μ½”λ“œλ₯Ό μ΄ν•΄ν•˜κΈ° μ‰½κ²Œ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

μˆ˜μ •ν•œ μ½”λ“œ

T = int(input())
for test_case in range(1, T + 1):
    N, A, B = map(int, input().split())
    
    # p와 t 채널 λͺ¨λ‘ κ΅¬λ…ν•˜λŠ” μ‚¬λžŒμ˜ μ΅œλŒ€κ°’μ€ 두 κ΅¬λ…μž 수 쀑 μž‘μ€ κ°’
    sub_max = min(A, B)
    
    # p와 t 채널 λͺ¨λ‘ κ΅¬λ…ν•˜λŠ” μ‚¬λžŒμ˜ μ΅œμ†Œκ°’μ€ (A + B - N) 이상, 0 μ΄ν•˜
    sub_min = max(0, A + B - N)
    
    print(f"#{test_case} {sub_max} {sub_min}")

 

 

 

πŸ‘©‍πŸ’» 회고

μ‚¬λžŒ 수 N λͺ…이 μ£Όμ–΄μ§„ κ±Έ 생각 λͺ»ν•˜κ³  ν’€μ—ˆμ–΄μ„œ μ²˜μŒμ—” ν‹€λ Έμ—ˆλ‹€. κ·Έλž˜μ„œ μ΅œλŒ€ μ΅œμ†Œλ₯Ό μ–΄λ–»κ²Œ κ΅¬ν•˜λŠ”κ±΄κ°€,, 문제 μ„€λͺ…이 훼이크인 κ±° μ•„λ‹Œκ°€ ν–ˆμ—ˆλ‹€.. 아침에 μ‘Έλ¦° μƒνƒœλ‘œ ν’€μ–΄μ„œ 잘 μ•ˆ 보인거라고 치자.


 

728x90