[알고리즘] 투 포인터 문제 풀이

황성현·2024년 1월 30일

코딩테스트 대비

목록 보기
10/22

백준 2018

import java.util.*;

class Main{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int start_index = 1;
        int end_index= 1;
        int count = 1;
        int sum = 1;
        
        while(end_index < n){
            if(sum == n){
              count++;
              end_index++;
              sum = sum + end_index;
            }else if(sum > n){
              sum = sum - start_index;
              start_index++;
            }else{
              end_index++;
              sum = sum + end_index;
            }
        }
        System.out.println(count);
    }
}

얻어갈 점:

  • 투 포인터는 시간 복잡도가 O(n)으로 굉장히 작은 편에 속하기에 제한 시간이 적은 문제에 활용 가능!
  • 1부터 입력받는 n까지 꼭 배열을 만들 필요 없이 start_index, end_index 두 개를 ++ 연산하면서 배열처럼 쓸 수 있음.

0개의 댓글