Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- pcce 기출문제 10번 공원
- 티스토리챌린지
- 오블완
- pccp 기출문제 풀이
- boj 5567
- gemmasprint
- pcce 기출문제 풀이
- pcce 기출문제 10번 지폐 접기 풀이
- DirectX
- 고대 문명 유적 탐사
- boj 1991
- c++ 1991
- c++ 5567
- python 고대 문명 유적 탐사
- depth-stencil
- 백준 5567
- directx 그래픽스
- 수식 복원하기
- DirectX12
- pcce 기출문제 10번 공원 풀이
- 코드트리 고대 문명 유적 탐사
- constant buffre
- pcce 기출문제 9번 지폐 접기
- 잔디 기부
- 프로그래밍공부
- 잔디 기부 캠페인
- root signature
- 렌더링 파이프
- PCCE
- texture mapping
Archives
- Today
- Total
오구의코딩모험
[Python] 2470번 : 두 용액 본문
반응형
문제 3줄 요약
1. 알칼리성 용액(음의 정수), 산성 용액(양의 정수)이 있다.
2. 같은 종류든 서로 다른 종류든 두 용액을 섞어서 0과 가깝게 만든다.
3. 0에 가장 가까운 경우가 두 개 이상일 경우, 그 중 아무것이나 하나 출력
스페셜 저지 딱지가 붙어있는 것을 보고
등골이 쎄했다.
이 딱지는 도대체 뭘 의미할까...
내가 생각한 방법은
두 종류의 용액을 나눠
절댓값을 최소값으로 갱신해주는 방법이었다.
근데 하나씩 비교해주니,
첫 번째 관문
"시간 초과"
최솟값인 0인 경우는
빠르게 break를 해주었다.
그 결과,
응 그냥 틀렸다.
자세히 생각해보니
문제 요약 두 번째 줄..
최소가 같은 용액일 때를 고려해주지 않았다..
결국 질문게시판에 있는
투포인터 코드를 활용하여
개선해주었다.
from sys import stdin
if __name__ == "__main__":
N = int(stdin.readline())
num_list = []
for num in stdin.readline().strip().split():
num_list.append(int(num))
num_list = sorted(num_list)
# 투포인터
Left = 0
Right = len(num_list)-1
# 최소일 경우, 용액의 정보를 담는다.
answer = [0,0,abs(num_list[0]+num_list[-1])]
while(Left<Right):
# 최소 비교
if abs(num_list[Left] + num_list[Right]) <= answer[2]:
answer[0] = num_list[Left]
answer[1] = num_list[Right]
answer[2] = abs(num_list[Left] + num_list[Right])
# 최솟값인 0 일 경우, break
if answer[2] == 0:
break
# 절댓값이 커진 경우, 좀 더 작은 용액을 담는다.
if num_list[Left]+num_list[Right] > 0:
Right -=1
# 절댓값이 작아진 경우, 좀 더 큰 용액을 담는다.
else:
Left += 1
print(answer[0], answer[1])
스페셜 저지...
스페셜한 생각이 필요한 문제다.
끝!
반응형
'프로그래밍 공부 > 백준 알고리즘' 카테고리의 다른 글
[Python] 2981번 : 검문 (0) | 2023.02.23 |
---|---|
[Python] 1644번 : 소수의 연속합 (0) | 2023.02.22 |
[Python] 1339번 : 단어 수학 (0) | 2023.02.18 |
[Python] 1715번 : 카드 정렬하기 (0) | 2023.02.18 |
[Python] 9935번 : 문자열 폭발 (0) | 2023.02.17 |
Comments