반응형

전체 글 19

[파이썬/python] 투포인터 백준 1940번: 주몽 3272번:두 수의 합

1940번: 주몽https://www.acmicpc.net/problem/1940import sysinput = sys.stdin.readlineN = int(input())M = int(input())arr = list(map(int,input().split()))arr.sort() #리스트만 가능. 원본 리스트 자체가 정렬.start_idx = 0end_idx = N - 1count = 0current_sum = 0while start_idx 배열이 오름차순으로 정렬되어 있다는 사실을 이용. 가장 작은 값(왼쪽 끝)과 가장 큰 값(오른쪽 끝)을 선택한 상태에서 시작. 두 수의 합이 타겟(M)보다 작다면?현재 선택할 수 있는 '가장 큰 값'을 더했는데도 목표치에 도달하지 못함. 합을 키우려면 작은 쪽의..

[파이썬/python] 투포인터 백준 2018번: 수들의 합 5

투 포인터(Two Pointers) 알고리즘투 포인터는 1차원 배열(또는 리스트)에서 두 개의 포인터(가리키는 위치)를 조작하여 원하는 결과를 효율적으로 얻는 알고리즘. 주로 '연속된 데이터의 구간'을 처리할 때 사용.2018: 수들의 합 5https://www.acmicpc.net/problem/2018이 문제처럼 N이 최대 10,000,000인 경우, 이중 반복문을 사용하여 모든 경우의 수를 확인하면 O(N^2)의 시간 복잡도를 가져 제한 시간(2초) 내에 통과할 수 없음. 하지만 투 포인터를 사용하면 배열을 한 번만 순회하므로 O(N)의 시간 복잡도로 문제를 해결할 수 있어 매우 효율적.작동 방식: 시작점(start)과 끝점(end)을 나타내는 두 개의 변수를 설정하고, 조건에 따라 두 포인터를 요..

반응형