Algorithms-[Two Pointer]

2022. 1. 11. 23:09·코딩테스트/파이썬 알고리즘

오늘은 투포인터 알고리즘을 알아볼 것이다.

투포인터 알고리즘은 두개의 포인터(인덱스)를 설정해놓고 위치를 기록하면서 처리하는 알고리즘이다. 이 알고리즘은 문제로 설명하는게 더 빠를 것 같아서 문제로 설명을 해보도록 하겠다. 백준의 수들의 합문제이다.  

1. 우선 시작점(left)과 끝점(right)을 배열의 첫번째를 가리키도록 한다.

2. 구간의 부분합이 목표값(m)과 같다면 저장한다.

3. 현재 부분합이 m보다 작다면 구간을 늘려야 하므로 끝점(right)을 +1 한다.

4. 현재 부분합이 m보다 크거나 같다면 구간을 줄여야 하므로 시작점(left)를 +1 한다.

이렇게 모든 경우를 확인하면 목표값과 같은 경우들이 저장되어있을거고 그중 가작 작은 구간을 포함하면된다. 

내가 얼마전 푼 백준의 부분합 문제는 m이상의 값도 저장하기 때문에 위 설명과에 if문만 손봐주면 동일하게 풀 수 있다.

일반적인 투포인터 문제

 

2003번: 수들의 합 2

첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다.

www.acmicpc.net

부분합 

 

1806번: 부분합

첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다.

www.acmicpc.net

https://rebas.kr/765

728x90

'코딩테스트 > 파이썬 알고리즘' 카테고리의 다른 글

Algorithms-[Heap]  (0) 2022.02.28
Algorithms-[deque]  (0) 2022.01.19
Algorithms-[Python-변수 할당]  (0) 2022.01.04
Algorithms-[BFS]  (0) 2021.12.30
Algorithms-[Dynamic_Programming]  (0) 2021.12.19
'코딩테스트/파이썬 알고리즘' 카테고리의 다른 글
  • Algorithms-[Heap]
  • Algorithms-[deque]
  • Algorithms-[Python-변수 할당]
  • Algorithms-[BFS]
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨
    로그인/로그아웃
  • 전체
    오늘
    어제
    • 분류 전체보기 (471)
      • 알쓸신잡 (79)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (21)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
  • Personal

    GITHUB
    Instagram
  • 공지사항

  • 인기 글

  • 태그

    파이썬
    이것이취업을위한코딩테스트다
    나동빈
    dp
    이코테
    BFS
    DFS
    그리디
    백준
    이분탐색
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3

HOME

HOME

상단으로

티스토리툴바