https://www.acmicpc.net/problem/14921
(처음 든 생각)
dp를 이용해서 푸는 문젠가했는데
그건 아닌 것 같았다.
min을 이용해서 0에 가까운 숫자를 찾으면 되는데,
위 링크에 나와있는 예제2번을 풀 때 양수로 출력되는 문제가 발생했다.
따라서 if abs(result) > abs(now) 구문을 넣어주고,
result에는 원래의 값만을 집어넣었다.
(풀이)
import sys
n = int(sys.stdin.readline().rstrip())
array = list(map(int, sys.stdin.readline().rstrip().split()))
left = 0
right = n - 1
result = 100000000 #1e9
while left < right:
now = array[left] + array[right]
if now == 0:
print(0)
break
if now > 0:
right -= 1
if abs(result)>abs(now):
result=now
continue
continue
left += 1
if abs(result)>abs(now):
result=now
print(result)
'여니의 취준 준비 > 코딩테스트 (Python)' 카테고리의 다른 글
[n16507] 어두운 건 무서워 - python (0) | 2021.09.08 |
---|---|
[n2458] 키순서 in python (0) | 2021.09.03 |
[n7579] 앱 in python (0) | 2021.09.02 |
[n17478] 재귀함수가 뭔가요? in python (0) | 2021.09.02 |
[n5568] 카드 놓기 in python (0) | 2021.09.01 |