728x90
https://www.acmicpc.net/problem/2470
2470번: 두 용액
첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00
www.acmicpc.net

(1) 오답 코드
import sys
input = sys.stdin.readline
N = int(input())
liquid = list(map(int, input().split(" ")))
liquid.sort()
start = 0
end = N - 1
answer = abs(liquid[start] + liquid[end])
liquid_answer = [liquid[start], liquid[end]]
while start <= end:
ans = liquid[start] + liquid[end]
if abs(ans) <= answer:
liquid_answer = [liquid[start], liquid[end]]
answer = abs(ans)
if ans < 0:
start += 1
else:
end -= 1
liquid_answer.sort()
for i in liquid_answer:
print(i, end = " ")
맞왜틀 맞왜틀을 외치면서 어디가 틀렸을까 고민을 했다. 근데 문제 조건 중에 두 용액을 혼합해서 한다고 나와있는데,
while start <= end:
등호를 이렇게 표시하면 혹시라고 하나의 용액만을 섞는 경우가 발생한다. 그래서 이걸 고쳐줬더니 맞았다.
(2) 정답 코드
import sys
input = sys.stdin.readline
N = int(input())
liquid = list(map(int, input().split(" ")))
liquid.sort()
start = 0
end = N - 1
answer = abs(liquid[start] + liquid[end])
liquid_answer = [liquid[start], liquid[end]]
while start < end:
ans = liquid[start] + liquid[end]
if abs(ans) <= answer:
liquid_answer = [liquid[start], liquid[end]]
answer = abs(ans)
if ans < 0:
start += 1
else:
end -= 1
liquid_answer.sort()
for i in liquid_answer:
print(i, end = " ")

sumini0516 - Overview
sumini0516 has 6 repositories available. Follow their code on GitHub.
github.com
728x90
'Study > Coding Test' 카테고리의 다른 글
[백준] 20920 - 영단어 암기는 괴로워 Python, C/C++ (0) | 2023.10.12 |
---|---|
[백준] 10026 - 적록색약 Python, C/C++ (0) | 2023.10.11 |
[백준] 1717 - 집합의 표현 Python, C/C++ (1) | 2023.10.11 |
[백준] 1764 - 듣보잡 Python (0) | 2023.10.11 |
[백준] 2563 - 색종이 Python (0) | 2023.10.11 |