๋ฐ์ํ
๐ฑ ๋ฌธ์
๐ฑ ํ์ด
์ด ๋ฌธ์ ๋ ํฌ ํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํฉ๋๋ค. ํฌ ํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ์ด๋, 1์ฐจ์ ๋ฐฐ์ด์์ ๊ฐ์ ๋ค๋ฅธ ์์๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๋ 2๊ฐ์ ํฌ์ธํฐ๋ฅผ ์กฐ์ํด๊ฐ๋ฉด์ ์ํ๋ ๊ฐ์ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
1. ์ ๋ ฅ๋ฐ๊ธฐ
n = int(input())
liquid = sorted(list(map(int, input().split())))
์ ๋ ฅ์ ๋ ์ค์ด ์ฃผ์ด์ง๋๋ค. ์ฒซ์งธ ์ค์๋ ์ ์ฒด ์ฉ์ก์ ์์ธ n์ ์ ๋ ฅ๋ฐ๊ณ , ๋์งธ ์ค์์๋ ์ฉ์ก์ ํน์ฑ๊ฐ๋ค์ธ n๊ฐ์ ์ ์๋ค์ ๋ฆฌ์คํธ๋ก ์ ๋ ฅ๋ฐ์ต๋๋ค. ์ด๋, ๋ฆฌ์คํธ๋ ์ ๋ ฌ์ ํด์ฃผ์ด์ผ ํฉ๋๋ค.
2. ๋ณ์ ์ด๊ธฐํ
min = sys.maxsize
start = 0
end = n - 1
result = []
min
์ ์ฉ์ก์ ํน์ฑ๊ฐ์ ํฉ์ ์ ๋๊ฐ ์ค ์ต์๊ฐ์ ๋ด๋ ๋ณ์์ ๋๋ค. ํฌ ํฌ์ธํฐ๋ฅผ ์กฐ์ํ ๋๋ง๋คmin
๊ฐ์ด ์ ๋ฐ์ดํธ ๋ ์ ์์ต๋๋ค.start
์end
๋liquid
๋ฆฌ์คํธ์ ๋ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ ํฌ์ธํฐ์ ํด๋นํฉ๋๋ค.liquid
๋ฆฌ์คํธ๋ฅผ ์ด๋ฏธ ์ ๋ ฌํด์ฃผ์์ผ๋ฏ๋ก ์ ์ชฝ ๋์์ ์์ํ์ฌ ๋ฒ์๋ฅผ ์ค์ฌ๊ฐ๋๋ค.result
๋ ์ถ๋ ฅํ ๊ฒฐ๊ณผ ๊ฐ์ ๋ด๋ ๋ฆฌ์คํธ์ ๋๋ค.min
์ด ์ ๋ฐ์ดํธ๋ ๋๋ง๋คresult
๋ ์ ๋ฐ์ดํธ ๋ฉ๋๋ค.
3. ํฌ ํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ฒ์๋ฅผ ์ค์ฌ๊ฐ๊ธฐ
while start < end:
mix = liquid[start] + liquid[end]
if abs(mix) < min:
min = abs(mix)
result = [liquid[start], liquid[end]]
if mix < 0:
start += 1
elif mix > 0:
end -= 1
else:
break
start
์end
๊ฐ ๋ง๋๊ธฐ ์ ๊น์ง ๋ฐ๋ณตํ๋ฉฐ, ๋ ์ฉ์ก์ ํน์ฑ๊ฐ์ ํฉ์ด 0์ด ๋๋ฉด ๋ฐ๋ณต๋ฌธ์ ์ฆ์ ์ข ๋ฃํฉ๋๋ค.mix
๋ ๋ ์ฉ์ก์ ํน์ฑ๊ฐ์ ํฉํ ๊ฐ์ ๋ด๊ณ ์์ต๋๋ค.- ์ฐ๋ฆฌ์ ๋ชฉํ๋
mix
์ ์ ๋๊ฐ์ด 0๊ณผ ๊ฐ์ฅ ๊ฐ๊น๋๋ก ํ๋ ๋ ์ฉ์ก์ ์ ํํ๋ ๊ฒ์ด๋ฏ๋กmix
์ ์ ๋๊ฐ์ ํ์ฌmin
๊ฐ๊ณผ ๋น๊ตํ์ฌ ๋ ์๋ค๋ฉดmin
๊ณผresult
๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค. mix
๊ฐ์ด ์์๋ผ๋ฉด ํฌ ํฌ์ธํฐ ์กฐ์ ์,start
๋ฅผ 1 ์ฆ๊ฐ์์ผ ์ดํ ๊ณ์ฐ๋mix
๊ฐ์ ์ฆ๊ฐ์์ผ 0์ ๊ฐ๊น๋๋ก ํฉ๋๋ค. ๋ฐ๋๋กmin
๊ฐ์ด ์์๋ผ๋ฉด ํฌ ํฌ์ธํฐ ์กฐ์ ์,end
๋ฅผ 1 ๊ฐ์์์ผmix
๊ฐ์ด 0์ ๊ฐ๊น๋๋ก ํฉ๋๋ค.mix
๊ฐ์ด 0์ด๋ผ๋ฉด ๋์ด์ ๊ฐ์ ํ ์ฌํญ์ด ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃํฉ๋๋ค.
๐ฑ ์ ๋ต ์ฝ๋
# !/usr/bin/env python
# -*- coding: utf-8 -*-
# boj 2460 ๋ ์ฉ์ก
import sys
input = sys.stdin.readline
n = int(input())
liquid = list(map(int, input().split()))
min = sys.maxsize
liquid.sort()
start = 0
end = n - 1
result = []
while start < end:
mix = liquid[start] + liquid[end]
if abs(mix) < min:
min = abs(mix)
result = [liquid[start], liquid[end]]
if mix < 0:
start += 1
elif mix > 0:
end -= 1
else:
break
print(*result)
๋ฐ์ํ
'Algorithm > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] #9935 ๋ฌธ์์ด ํญ๋ฐ (Python) (0) | 2023.02.13 |
---|---|
[BOJ] #2473 ์ธ ์ฉ์ก (Python) (0) | 2023.02.13 |
[BOJ] #2178 ๋ฏธ๋ก ํ์ (BFS, Python) (0) | 2023.02.10 |
[BOJ] #11401 ์ดํญ๊ณ์3 (Python) (0) | 2023.02.07 |
[BAEKJOON] #1202) ๋ณด์ ๋๋ (๊ทธ๋ฆฌ๋, ์ต์ํ) (0) | 2023.01.28 |
๋๊ธ