백준 1940 파이썬 , 투 포인터 알고리즘
2024. 2. 6. 17:08ㆍ코딩 도구/백준
반응형
백준 1940 : 주몽
문제
https://www.acmicpc.net/problem/1940
답안 코드 :
import sys
input = sys.stdin.readline
N = int(input())
M = int(input())
A = list(map(int, input().split()))
A.sort()
count = int(0)
i = int(0)
j = int(N - 1)
while i < j:
if A[i] + A[j] < M:
i += 1
elif A[i] + A[j] > M:
j -= 1
else:
count += 1
i += 1
j -= 1
print(count)
생각 :
# 크기를 비교해야하니까 값을 정렬하면 문제를 풀기 좋을 것 같다.
# N(1 ≤ N ≤ 15,000) 이므로 O(nlogn) 시간 복잡도 사용해도 될 듯하다.
# 즉 정렬 쓸거임.
# 1. 오름차순 정렬
# 2. 투포인터 이동해서 풀 것이다. 정렬한 수를 처음부터 반복해서 풀거다.
# 투 포인터 이동 원칙
# while i < j:
# if 재료 합 <M: 작은 번호 재료를 한 칸 위로 변경
# elif 재료 합> M: 큰 번호 재료를 한 칸 아래로 변경
# else 경우의 수 증가, 양쪽 index 각각 변경
반응형
'코딩 도구 > 백준' 카테고리의 다른 글
백준 12891 파이썬 , 슬라이딩 윈도우 알고리즘 (41) | 2024.02.08 |
---|---|
백준 1253 파이썬, 정렬 후 투 포인터 알고리즘 (45) | 2024.02.07 |
백준 2018 파이썬, 투 포인터 (50) | 2024.02.05 |
백준 10986 파이썬 , 구간 합 배열 이용 (48) | 2024.02.03 |
백준 11660 파이썬, 구간 합 알고리즘, 2차원 배열 (51) | 2024.02.01 |