λ°±μ€€ 2470 두 μš©μ•‘ 파이썬

2023. 1. 29. 14:43γ†πŸ”± Algorithm/Else

 

2470번: 두 μš©μ•‘

첫째 μ€„μ—λŠ” 전체 μš©μ•‘μ˜ 수 N이 μž…λ ₯λœλ‹€. N은 2 이상 100,000 μ΄ν•˜μ΄λ‹€. λ‘˜μ§Έ μ€„μ—λŠ” μš©μ•‘μ˜ νŠΉμ„±κ°’μ„ λ‚˜νƒ€λ‚΄λŠ” N개의 μ •μˆ˜κ°€ λΉˆμΉΈμ„ 사이에 두고 주어진닀. 이 μˆ˜λ“€μ€ λͺ¨λ‘ -1,000,000,000 이상 1,000,00

www.acmicpc.net

 

⭐️ 사고 κ³Όμ •

μ„œλ‘œ λ‹€λ₯Έ 2개의 μš©μ•‘ -> 음 ν¬μΈνŠΈλŠ” 2개

numbers 의 μ΅œλŒ€ κΈΈμ΄λŠ” 10만 -> 즉 쑰합은 μ‹œκ°„μ΄ˆκ³Ό 

두 수λ₯Ό λ”ν–ˆμ„ λ•Œ κ°€μž₯ 0에 κ°€κΉκ²Œ. 
크건 μž‘κ±΄ 상관없이 두 수의 합이 0에 κ°€κΉŒμš°λ©΄ λœλ‹€. 

브루트포슀 μ•ˆλΌ


πŸ“Œ solved point
μ •λ ¬ν•  λ•Œ μ ˆλŒ€κ°’μ΄ μž‘μ€ μˆœμ„œλŒ€λ‘œ μ •λ ¬ν•΄μ•Όν•œλ‹€. 
κ·Έλ ‡κ²Œ ν•˜λ©΄ μ„œλ‘œ 차이가 λΉ„μŠ·ν•œ 것끼리 λͺ¨μž„. 
μ–΄λ–»κ²Œ μ ˆλŒ€κ°’μ΄ μž‘μ€ μˆœμ„œλŒ€λ‘œ μ €μž₯ν•  수 μžˆλŠ”λ°? -> lambda baby
μ •λ ¬ ν›„ μ•ž λ’€λ‘œ λ”ν•΄λ³΄λ©΄μ„œ μ €μž₯ν•˜λ‹€. 그리고 λ―Ό() μΉœλ‹€.

 

πŸ”± μ½”λ“œ

N = int(input())
numbers = sorted(list(map(int, input().split())), key=lambda x: abs(x))
minimum = float("inf")
answer = []
for idx in range(len(numbers) - 1):
    if abs(numbers[idx] + numbers[idx + 1]) < minimum:
        minimum = abs(numbers[idx] + numbers[idx + 1])
        answer = [numbers[idx], numbers[idx + 1]]
print(*sorted(answer))