728x90
반응형
백준 두 수의 합 파이썬 문제풀이
n개의 수열이 있고,
이 중 두 개의 합이 특정한 수 x를 만족하는 쌍이 몇 개인지 구하는 문제이다.
이 문제가 투포인터로 푼다는 것을 알고 있었기에 방법은 생각났다.
i와 j 인덱스를 잡고,
i=0, j=n-1 에서 출발해서 중간쪽으로 인덱스를 좁혀온다.
i번째 j번째를 더해서 target 수와 같은지 비교해보고,
합이 목표보다 크면 j - 1
목표보다 작으면 i + 1
그리고 i < j 상태에서
i == j이거나 i > j 이면 수열이 뒤집힌 것이므로 중단한다.
정답코드
n = int(input())
number = list(map(int,input().split()))
target = int(input())
i = 0
j = n-1
answer = 0
number.sort()
while i < j:
sum = number[i] + number[j]
if sum == target:
answer += 1
if sum > target:
j -= 1
else:
i += 1
print(answer)
이번에는 그래도 스스로 잘 풀어내서, 뿌듯하다.
728x90
반응형
'개발 · 컴퓨터공학 > 알고리즘' 카테고리의 다른 글
백준 10815 숫자카드 파이썬 문제풀이 (python 이분탐색) (5) | 2024.10.29 |
---|---|
백준 22988 재활용 캠페인 파이썬 문제풀이 (python 투포인터) (5) | 2024.10.28 |
백준 9251 LCS 파이썬 문제풀이 (python LIS, LCS) (4) | 2024.10.15 |
백준 11053 가장 긴 증가하는 부분 수열 파이썬 문제풀이 (python LIS, LCS) (6) | 2024.10.14 |
백준 1520 내리막길 파이썬 문제풀이 (python 2차원 DP) (4) | 2024.10.13 |