https://www.acmicpc.net/problem/3649
풀이
주어진 레고들 중 두 개의 길이 합이 구멍 크기와 같을 수 있는지 확인하는 문제이기에 투포인터 알고리즘을 적용했다.
코드
# 3649번 로봇 프로젝트
import sys
while 1:
try:
x = int(input())
x *= 10000000 # 단위가 센티미터이기에 나노미터로 통일.
r = int(input())
lego = [int(sys.stdin.readline()) for _ in range(r)]
# r개수가 최대 10^6이기에 가능.
lego.sort()
start = 0
end = r-1
flag = False
while start < end:
total = lego[start] + lego[end]
if total == x:
flag = True
break
elif total > x:
end -=1
else:
start += 1
if flag:
print("yes", lego[start], lego[end])
else:
print("danger")
except:
break
출력결과
'백준 > 투 포인터' 카테고리의 다른 글
[백준][Python] 1253번 좋다 - 코팩 (0) | 2023.08.20 |
---|---|
[백준][Python] 14921번 용액 합성하기 - 코팩 (0) | 2023.08.14 |
[백준][Python] 2473번 세 용액 - 코팩 (0) | 2023.08.10 |
[백준][Python] 2470번 두 용액 - 코팩 (0) | 2023.08.09 |
[백준][Python] 2467번 용액 - 코팩 (0) | 2023.08.09 |