728x90
반응형
https://www.acmicpc.net/problem/2473
2473번: 세 용액
첫째 줄에는 전체 용액의 수 N이 입력된다. N은 3 이상 5,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상
www.acmicpc.net
문제 해결
- 전형적인 이분탐색 문제 (세 원소의 합이 C(상수) 일때 세 원소를 구하는 문제)
- 가장 작은 수를 고정시키고 나머지 두 수를 이분탐색으로 구하는 문제
- 그런데 python3에서는 시간초과가 난다...ㅜㅜ(pypy3에서는 잘 풀림) 근데 다른 분들도 이렇게 많이 푼듯?
CODE
import sys
input = sys.stdin.readline
INF =sys.maxsize
n = int(input())
A = list(map(int, input().split()))
A.sort()
target = INF
answer = [-1,-1,-1]
for i in range(n-2):
start = i+1
end = n-1
while start<end:
if abs(A[i]+A[start]+A[end]) < abs(target):
target = A[i] + A[start] + A[end]
answer[0], answer[1], answer[2] = A[i], A[start], A[end]
if A[i]+A[start]+A[end] >0:
end -= 1
elif A[i]+A[start]+A[end] <0:
start += 1
elif A[i]+A[start]+A[end] ==0:break
print(*answer)
유사문제
https://thought-process-ing.tistory.com/252
[python] 백준 3151 합이 0
https://www.acmicpc.net/problem/3151 3151번: 합이 0 Elly는 예상치 못하게 프로그래밍 대회를 준비하는 학생들을 가르칠 위기에 처했다. 대회는 정확히 3명으로 구성된 팀만 참가가 가능하다. 그러나 그녀
thought-process-ing.tistory.com
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 1477 휴게소 세우기 (0) | 2023.04.25 |
---|---|
[python] 백준 7453 합이 0인 네 정수 (0) | 2023.04.25 |
[python] 백준 1727 커플 만들기 (0) | 2023.04.24 |
[python] 백준 3151 합이 0 (0) | 2023.04.24 |
[python] 백준 18869 멀티버스 Ⅱ (0) | 2023.04.24 |
댓글