728x90
https://www.acmicpc.net/problem/3649
투 포인터 문제이고 어렵진 않았다.
다만, try except를 사용해서 에러를 캐치해야하는게 별로 좋지 않은 문제인듯 하다.
import sys; input = sys.stdin.readline
def main():
while(1):
try:
# 0 input
x = int(input()) * 10**7
n = int(input())
nums = [int(input()) for _ in range(n)]
# 1 sort
nums.sort()
# 2 two pointer
i = 0
j = n - 1
flag = False
while (i < j):
if nums[i] + nums[j] == x:
flag = True
break
elif nums[i] + nums[j] < x:
i+=1
else:
j-=1;
# 3 output
if flag:
print("yes", nums[i], nums[j])
else:
print("danger")
except:
break
return
if __name__ == "__main__":
main()
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 1149 RGB거리, C++ (0) | 2022.08.13 |
---|---|
[LeetCode] 235. Lowest Common Ancestor of a Binary Search Tree, C++ (0) | 2022.08.13 |
[프로그래머스] 단체사진 찍기, 2017 카카오코드 본선, C++ (0) | 2022.05.19 |
[백준] 8972 미친 아두이노 python (0) | 2022.04.11 |
[백준] 7682 틱택토 python (0) | 2022.04.08 |