티스토리 뷰

반응형

https://www.acmicpc.net/problem/2470

 

2470번: 두 용액

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

www.acmicpc.net

 


⊙ 문제

⊙ 입력

⊙ 출력

⊙ 예제 입출력

⊙ 알고리즘 분류

  • 정렬
  • 이분 탐색
  • 두 포인터

 


 

⊙ 문제 접근 과정

 

투 포인터 알고리즘을 사용해 풀었다.

 

초기 비교 값을 한계치보다 훨씬 높게 설정해주고 비교하면서 더 작은 값을 결괏값에 넣어주면서 포인터를 이동시켜갔다.

 

마지막에는 두 값을 출력해주면 끝!!

 

코드를 보면 쉽게 이해가 될 것 같다!! 이해가 안 되시는 분은 댓글 남겨주세요!

 


 

⊙ 문제 풀이

 

N = int(input())

solution=sorted(list(map(int, input().split())))

result = 9999999999999
start = 0
end = N-1
one = 0
two = 0

while start<end:
    temp = solution[start] + solution[end]
    zero = abs(temp)

    if result>zero:
        result=zero
        one = solution[start]
        two = solution[end]
    
    if temp>0:
        end-=1
    else:
        start+=1

print(one,two)

 


⊙ 결과

 


⊙ 마무리

 

 

NONE

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함