홍우진의 개발 일기장
[백준] 1940번: 주몽/ 파이썬 본문
728x90
반응형
문제 링크
https://www.acmicpc.net/problem/1940
풀이 코드
n = int(input())
m = int(input())
nums = list(map(int,input().split()))
nums.sort()
left, right = 0, len(nums) - 1
count = 0
while left < right:
sum_num = nums[left] + nums[right]
if sum_num < m:
left += 1
elif sum_num > m:
right -= 1
else:
count += 1
left += 1
right -= 1
print(count)
코드 해석
투 포인터 문제이다.
왼쪽 끝과 오른쪽 끝에 포인터를 둔 뒤,
두 포인터 위치의 값을 합하고
만약 합한 값이 원하는 값보다 작다면 왼쪽 포인터를 +1,
크다면 오른쪽 포인터를 -1 하여 원하는 값을 찾아나간다.
만약 원하는 값과 합한 값이 일치 할 시 카운트를 +1 하고 왼 +1, 오 -1을 한다.
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1059번: 좋은 구간/ 파이썬 (0) | 2022.08.22 |
---|---|
[백준] 10158번: 개미/ 파이썬 (0) | 2022.08.21 |
[백준] 2491번: 수열/ 파이썬 (0) | 2022.08.21 |
[백준] 16395번: 파스칼의 삼각형/ 파이썬 (0) | 2022.08.18 |
[백준] 1769번: 3의 배수/ 파이썬 (0) | 2022.08.18 |
Comments