๋ฌธ์
KOI ๋ถ์ค ๊ณผํ์ฐ๊ตฌ์์์๋ ๋ง์ ์ข ๋ฅ์ ์ฐ์ฑ ์ฉ์ก๊ณผ ์์นผ๋ฆฌ์ฑ ์ฉ์ก์ ๋ณด์ ํ๊ณ ์๋ค. ๊ฐ ์ฉ์ก์๋ ๊ทธ ์ฉ์ก์ ํน์ฑ์ ๋ํ๋ด๋ ํ๋์ ์ ์๊ฐ ์ฃผ์ด์ ธ์๋ค. ์ฐ์ฑ ์ฉ์ก์ ํน์ฑ๊ฐ์ 1๋ถํฐ 1,000,000,000๊น์ง์ ์์ ์ ์๋ก ๋ํ๋ด๊ณ , ์์นผ๋ฆฌ์ฑ ์ฉ์ก์ ํน์ฑ๊ฐ์ -1๋ถํฐ -1,000,000,000๊น์ง์ ์์ ์ ์๋ก ๋ํ๋ธ๋ค.
๊ฐ์ ์์ ์ธ ๊ฐ์ง ์ฉ์ก์ ํผํฉํ ์ฉ์ก์ ํน์ฑ๊ฐ์ ํผํฉ์ ์ฌ์ฉ๋ ๊ฐ ์ฉ์ก์ ํน์ฑ๊ฐ์ ํฉ์ผ๋ก ์ ์ํ๋ค. ์ด ์ฐ๊ตฌ์์์๋ ๊ฐ์ ์์ ์ธ ๊ฐ์ง ์ฉ์ก์ ํผํฉํ์ฌ ํน์ฑ๊ฐ์ด 0์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ฉ์ก์ ๋ง๋ค๋ ค๊ณ ํ๋ค.
์๋ฅผ ๋ค์ด, ์ฃผ์ด์ง ์ฉ์ก๋ค์ ํน์ฑ๊ฐ์ด [-2, 6, -97, -6, 98]์ธ ๊ฒฝ์ฐ์๋ ํน์ฑ๊ฐ์ด -97์ -2์ธ ์ฉ์ก๊ณผ ํน์ฑ๊ฐ์ด 98์ธ ์ฉ์ก์ ํผํฉํ๋ฉด ํน์ฑ๊ฐ์ด -1์ธ ์ฉ์ก์ ๋ง๋ค ์ ์๊ณ , ์ด ์ฉ์ก์ด ํน์ฑ๊ฐ์ด 0์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ฉ์ก์ด๋ค. ์ฐธ๊ณ ๋ก, ์ธ ์ข ๋ฅ์ ์์นผ๋ฆฌ์ฑ ์ฉ์ก๋ง์ผ๋ก๋ ํน์ ์ธ ์ข ๋ฅ์ ์ฐ์ฑ ์ฉ์ก๋ง์ผ๋ก ํน์ฑ๊ฐ์ด 0์ ๊ฐ์ฅ ๊ฐ๊น์ด ํผํฉ ์ฉ์ก์ ๋ง๋๋ ๊ฒฝ์ฐ๋ ์กด์ฌํ ์ ์๋ค.
์ฐ์ฑ ์ฉ์ก๊ณผ ์์นผ๋ฆฌ์ฑ ์ฉ์ก์ด ์ฃผ์ด์ก์ ๋, ์ด ์ค ๊ฐ์ ์์ ์ธ ๊ฐ์ ์๋ก ๋ค๋ฅธ ์ฉ์ก์ ํผํฉํ์ฌ ํน์ฑ๊ฐ์ด 0์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ฉ์ก์ ๋ง๋ค์ด๋ด๋ ์ธ ์ฉ์ก์ ์ฐพ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์๋ ์ ์ฒด ์ฉ์ก์ ์ N์ด ์ ๋ ฅ๋๋ค. N์ 3 ์ด์ 5,000 ์ดํ์ ์ ์์ด๋ค. ๋์งธ ์ค์๋ ์ฉ์ก์ ํน์ฑ๊ฐ์ ๋ํ๋ด๋ N๊ฐ์ ์ ์๊ฐ ๋น์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. ์ด ์๋ค์ ๋ชจ๋ -1,000,000,000 ์ด์ 1,000,000,000 ์ดํ์ด๋ค. N๊ฐ์ ์ฉ์ก๋ค์ ํน์ฑ๊ฐ์ ๋ชจ๋ ๋ค๋ฅด๊ณ , ์ฐ์ฑ ์ฉ์ก๋ง์ผ๋ก๋ ์์นผ๋ฆฌ์ฑ ์ฉ์ก๋ง์ผ๋ก ์ ๋ ฅ์ด ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ๋ ์์ ์ ์๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ํน์ฑ๊ฐ์ด 0์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ฉ์ก์ ๋ง๋ค์ด๋ด๋ ์ธ ์ฉ์ก์ ํน์ฑ๊ฐ์ ์ถ๋ ฅํ๋ค. ์ถ๋ ฅํด์ผํ๋ ์ธ ์ฉ์ก์ ํน์ฑ๊ฐ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ถ๋ ฅํ๋ค. ํน์ฑ๊ฐ์ด 0์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ฉ์ก์ ๋ง๋ค์ด๋ด๋ ๊ฒฝ์ฐ๊ฐ ๋ ๊ฐ ์ด์์ผ ๊ฒฝ์ฐ์๋ ๊ทธ ์ค ์๋ฌด๊ฒ์ด๋ ํ๋๋ฅผ ์ถ๋ ฅํ๋ค.
https://www.acmicpc.net/problem/2473
๐ก ํ์ด ๋ฐ ์ฝ๋
import sys
n = int(input())
array = list(map(int, input().split()))
array.sort()
minTake = sys.maxsize
for i in range(n-2):
start = i + 1
end = n - 1
while start < end:
take = array[i] + array[start] + array[end]
if abs(take) < minTake:
minTake = abs(take)
result = [array[i], array[start], array[end]]
if take < 0:
start += 1
elif take > 0:
end -= 1
else:
break
print(result[0], result[1], result[2])
๋ฐฐ์ด ์ ๋ ฌ ํ ๊ธฐ์ค์ (i)์ ์ฎ๊ฒจ ๊ฐ๋ฉฐ ํ๋ ์ก๊ณ ๊ทธ ๊ธฐ์ค์ ๋ณด๋ค ํฐ ์๋ค์ ๋์์ผ๋ก ์ด์งํ์์ ํตํด ์ธ ์์ ํฉ์ด 0์ ๊ฐ์ฅ ๊ฐ๊น์ธ ๋๋ฅผ ์ฐพ๋๋ค. ์ด ๋ฌธ์ ๋ํ ์์ด๋์ด ๋์ถ์ ๋ํ ๋ณต์ต์ด ํ์ํ ๊ฒ ๊ฐ๋ค.
'Algorithm > ๐ Baekjoon Judge' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๋ฐฑ์ค 1715๋ฒ ์นด๋ ์ ๋ ฌํ๊ธฐ - ํ์ด์ฌ(Python) (0) | 2021.08.26 |
---|---|
[BOJ] ๋ฐฑ์ค 1789๋ฒ ์๋ค์ ํฉ - ํ์ด์ฌ(Python) (0) | 2021.08.26 |
[BOJ] ๋ฐฑ์ค 2470๋ฒ ๋ ์ฉ์ก - ํ์ด์ฌ(Python) (0) | 2021.08.24 |
[BOJ] ๋ฐฑ์ค 10026๋ฒ ์ ๋ก์์ฝ - ํ์ด์ฌ(Python) (0) | 2021.07.25 |
[BOJ] ๋ฐฑ์ค 2468๋ฒ ์์ ์์ญ - ํ์ด์ฌ(Python) (0) | 2021.07.18 |