Skip to content

Commit 13a75d3

Browse files
committed
[BOJ] #1253. 좋다 / 골드4 / 투포인터 / 45분 / 힌트, 성공
1 parent 620d696 commit 13a75d3

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
# 입력
5+
N = int(input())
6+
arr = list(map(int, input().split()))
7+
8+
arr.sort() # 투 포인터를 적용하기 위해 배열을 오름차순으로 정렬
9+
cnt = 0 # 좋은 수 개수
10+
11+
for i in range(N):
12+
target = arr[i] # 현재 '좋은 수'인지 확인할 목표값
13+
left, right = 0, N-1
14+
while left < right:
15+
# 타겟 값과 동일할 경우
16+
if target == arr[left] + arr[right]:
17+
if right == i: # target이 양수이고 자기 자신이라면
18+
right -= 1
19+
elif left == i: # target이 음수이고 자기 자신이라면
20+
left += 1
21+
else: # 좋은 수 찾음
22+
cnt += 1
23+
break
24+
# 타겟 값이 더 클 경우, 왼쪽 포인터를 오른쪽으로 이동
25+
elif target > arr[left] + arr[right]:
26+
left += 1
27+
# 타겟 값이 더 작을 경우, 오른쪽 포인터를 왼쪽으로 이동
28+
else:
29+
right -= 1
30+
31+
# 정답 출력
32+
print(cnt)

0 commit comments

Comments
 (0)