프로그래머스_쿠키 구입 <Java>

2024. 10. 22. 00:14·알고리즘/문제풀이
목차
  1. 투 포인터 알고리즘 개요

이 문제에서 사용된 알고리즘은 투 포인터(Two Pointers) 알고리즘입니다. 투 포인터 알고리즘은 배열 내에서 두 개의 포인터(인덱스)를 사용해 문제를 해결하는 방법으로, 주로 배열을 양쪽에서 비교하거나 합을 조정할 때 사용됩니다.

투 포인터 알고리즘 개요

  • 투 포인터 알고리즘은 두 개의 포인터를 사용해 배열을 순차적으로 탐색하면서 조건에 맞는 값을 찾는 방법입니다.
  • 배열의 특정 구간을 탐색하거나 두 부분 간의 합이나 차이를 비교하는 문제에서 자주 쓰입니다.
  • 일반적으로 두 개의 포인터가 배열의 서로 다른 위치에 놓이고, 필요한 상황에 따라 한 포인터를 왼쪽 또는 오른쪽으로 이동시킵니다.

이 문제에서의 투 포인터 알고리즘은 배열을 중간 기준으로 나눠, 왼쪽과 오른쪽에서 각각의 부분 합을 비교하면서 최적의 값을 찾는 방식입니다.

 

class Solution {
    public int solution(int[] cookie) {
        int answer = 0;
        int num = cookie.length;
        
        // i는 중간 지점
        for (int i = 0; i < num - 1; i++) {
            int leftSum = cookie[i];
            int rightSum = cookie[i + 1];
            
            int left = i;
            int right = i + 1;
            
            // 투 포인터로 합을 비교
            while (left >= 0 && right < num) {
                if (leftSum == rightSum) {
                    answer = Math.max(answer, leftSum); // 더 큰 값을 갱신
                }
                
                if (leftSum <= rightSum && left > 0) {
                    left--;
                    leftSum += cookie[left];
                } else if (rightSum < leftSum && right < num - 1) {
                    right++;
                    rightSum += cookie[right];
                } else {
                    break;
                }
            }
        }
        
        return answer;
    }
}

 

 

 

'알고리즘 > 문제풀이' 카테고리의 다른 글

프로그래머스_징검다리<Java>  (0) 2024.11.04
프로그래머스_호텔 방 배정 <Java>  (1) 2024.10.13
[백준_14500] 테트로미노.java  (0) 2024.04.07
[백준_2048] (Easy).java  (2) 2024.04.07
[백준_17471]게리맨더링.java  (0) 2024.04.05
  1. 투 포인터 알고리즘 개요
'알고리즘/문제풀이' 카테고리의 다른 글
  • 프로그래머스_징검다리<Java>
  • 프로그래머스_호텔 방 배정 <Java>
  • [백준_14500] 테트로미노.java
  • [백준_2048] (Easy).java
지화자_
지화자_
나만의 글로 기록하기
지화자_
냉정과열정사이
지화자_
전체
오늘
어제
  • 분류 전체보기 (47)
    • 알고리즘 (18)
      • 개념정복 (6)
      • 문제풀이 (12)
    • ComputerScience (5)
      • 데이터베이스 (3)
      • 네트워크 (0)
      • OS (2)
    • SSAFY (2)
    • Java (6)
    • Server (10)
    • Spring (3)
    • 일상 (1)
    • OpenSource (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • dfs
  • 아니안무서워
  • 소프티어
  • n-queen
  • cd
  • 나무섭지
  • 조합
  • 인터페이스
  • 백트래킹
  • 추상클래스
  • 백준
  • 분할정복
  • BFS
  • AOP
  • 빌드
  • CI
  • 배포
  • 알고리즘
  • 재귀함수
  • 부분집합
  • OOP
  • 백준바이러스
  • 병합정렬
  • 비트마스크
  • 구현

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.2
지화자_
프로그래머스_쿠키 구입 <Java>
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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