투 포인터(Two Pointer) 알고리즘(세 수의 합 구하기)

2024. 7. 25. 11:26·Java & Spring/알고리즘
목차
  1. ◇ 알고리즘 정의
  2. ◇ 알고리즘 동장방식
  3. ◇ 알고리즘 구현
  4. ◇ 알고리즘 사용처

◇ 알고리즘 정의

- 1차원 배열에서 각 다른 원소를 가르키는 2개의 포인터를 조작해가면서 원하는 값을 탐색하는 알고리즘이다.

◇ 알고리즘 동장방식

◇ 알고리즘 구현

import java.util.*;

public class Main {
    public static void main(String[] args) {
        int[] nums = {0, -5, -2, 4, 6, 9, -1};
        int target = 5;
        int count = 0;

        Arrays.sort(nums);

        for (int i = 0; i < nums.length - 2; i++) {
            int l = i + 1;
            int r = nums.length - 1;

            while (l < r) {
                int sum = nums[i] + nums[l] + nums[r];
                if (sum < target) {
                    l++;
                } else if (sum > target) {
                    r--;
                } else {
                    count++;
                    l++;
                    r--;
                }
            }
        }
        System.out.println(count);
    }
}

◇ 알고리즘 사용처

일반적으로 배열을 순회하며 연산을 할 때 투포인터 알고리즘을 사용하게 되면
(On^i)의 시간복잡도를 (On^(i-1))로 줄일 수 있다.

'Java & Spring > 알고리즘' 카테고리의 다른 글

다익스트라(Dijkstra) - 최단경로 찾기  (0) 2025.03.24
그래프탐색 - DFS와 BFS  (0) 2024.12.23
에라토스테네스의 체(소수, 약수 구하기)  (0) 2024.07.26
유클리드 호제법(최대공약수 구하기)  (0) 2024.07.18
  1. ◇ 알고리즘 정의
  2. ◇ 알고리즘 동장방식
  3. ◇ 알고리즘 구현
  4. ◇ 알고리즘 사용처
'Java & Spring/알고리즘' 카테고리의 다른 글
  • 다익스트라(Dijkstra) - 최단경로 찾기
  • 그래프탐색 - DFS와 BFS
  • 에라토스테네스의 체(소수, 약수 구하기)
  • 유클리드 호제법(최대공약수 구하기)
DJ.Kang
DJ.Kang
백엔드 개발 기록 블로그
  • DJ.Kang
    DJ Hello World
    DJ.Kang
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 이론공부
      • 시스템설계
      • Java & Spring
        • TIL
        • 트러블슈팅
        • 고도화
        • 알고리즘
        • 코딩테스트
        • Java
        • Spring
        • Thymeleaf
      • 프로젝트
        • coin-trading
        • 트러블슈팅
      • Docker
      • DB
      • AWS
      • CI-CD
      • 웹
      • git & github
      • 구인공고분석
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java 에라토스테네스의 체
    데이터 타입
    java 제어자
    java enhance switch
    java 세수의합
    java
    프로그래머스 java 기초트레이닝
    프로그래머스 java 기초 트레이닝
    Java 생성자
    Java this
    java arrays.copyofrnage()
    데이터 크기
    java기초
    java super
    java 멤버
    java 유클리드 호제법
    java 메서드
    자료구조
    개발로드맵
    java two-pointer
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
DJ.Kang
투 포인터(Two Pointer) 알고리즘(세 수의 합 구하기)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.