728x90
https://www.acmicpc.net/problem/3273
💡 문제 풀이
두 포인터 문제이다.
정렬을 한 다음에 시작 값과 끝 값을 계산해서
같다면 정답의 개수를 늘리고, 계산값이 찾는 값 보다 크면 end를 줄이고, 반대라면 start를 늘리면 된다.
✔️ 느낀 점
두 포인터의 개념을 처음 공부하는 기회였다. 이번에 잘 정리해놔야겠다.
💻 코드
N = int(input())
arr = list(map(int, input().split()))
arr.sort()
x = int(input())
start, end = 0, N-1
cnt = 0
while start < end:
tmp = arr[start] + arr[end]
if tmp == x: cnt += 1
if tmp < x:
start += 1
continue
end -= 1
print(cnt)
'문제 풀이 > 백준(BOJ)' 카테고리의 다른 글
[Python] 백준 1644번 : 소수의 연속합 (0) | 2022.08.10 |
---|---|
[Python] 백준 1806번 : 부분합 (0) | 2022.08.10 |
[Python] 백준 1976번 : 여행 가자 (0) | 2022.08.07 |
[Python] 백준 1038번 : 감소하는 수 (0) | 2022.08.05 |
[Python] 백준 1516번 : 게임 개발 (0) | 2022.08.05 |
댓글