poow810
article thumbnail

Problem ๐Ÿ’ป

Approach

  • ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ •๋ ฌ๋˜์–ด ์ฃผ์–ด์ง€๊ณ , ๋‘ ๊ฐ’์„ ํ•ฉํ•ด์„œ 0์— ๊ฐ€๊นŒ์šด ์ˆ˜๋ฅผ ์ฐพ์•„์•ผํ–ˆ๊ธฐ์—, left์™€ right๋ฅผ ํ•˜๋‚˜์”ฉ ํƒ์ƒ‰ํ•ด์•ผ๊ฒ ๋‹ค ์ƒ๊ฐํ•ด์„œ ํˆฌํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.
  • while๋ฌธ ์กฐ๊ฑด ๊ฐ’ ํ•ญ์ƒ ์ž˜ ํ™•์ธํ•˜๊ธฐ!
    • ๋‘ ์šฉ์•ก์˜ ๊ฐ’์„ ๊ตฌํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— left = right๊นŒ์ง€ ๋Œ๋ฆฌ๋ฉด ์•ˆ๋œ๋‹ค!
    • while left < right ๋กœ ์กฐ๊ฑด์„ ์ฃผ์–ด์•ผ ํ•จ

Solution ๐Ÿ’ก

import sys

N = int(sys.stdin.readline().strip())
lst = list(map(int, sys.stdin.readline().split()))

left = 0
right = len(lst) - 1
answer_left, answer_right = 0, 0
count = 1e99  

while left < right:  
    check = lst[left] + lst[right]

    if abs(check) < abs(count):
        count = check
        answer_left = lst[left]
        answer_right = lst[right]

    if check > 0:
        right -= 1
    elif check < 0:
        left += 1
    else: 
        break

print(answer_left, answer_right)

profile

poow810

@woonii_

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!