178870. 연속된 부분 수열의 합

2025. 4. 1. 21:24·Algorithm/Programmers
목차
  1. 문제
  2. 제한사항
  3. 풀이
  4. 회고

문제

https://school.programmers.co.kr/learn/courses/30/lessons/178870

제한사항

풀이

class Solution {
    public int[] solution(int[] sequence, int k) {
        int[] answer = new int[2];
        int n = sequence.length;
        
        answer[0] = 0; answer[1] = n-1;
        
        int left =0;
        
        int sum = 0;
        
        for(int right = 0; right < n ; right ++ ) {
            sum+=sequence[right];
            
            while(sum > k && left < right) {
                sum-=sequence[left];
                left++;
                
            }
            
            if(sum == k) {
                // 부분 수열 길이 비교
                if((right-left+1) < (answer[1] -answer[0] +1)) {
                    answer[0] = left;
                    answer[1] = right;
                }
            }
        }
        return answer;
    }
}

회고

부분 수열 합이 k가 되는 수열 중 길이가 짧은 부분 수열의 양 끝 인덱스를 구하는 문제였다. 단순 이중 for문을 통해 부분 수열의 합이 k와 일치하는지 계산해볼 수 있지만, 제한사항에 따라 시간 초과가 발생한다. 그래서 투 포인터 알고리즘를 이용해 부분 수열을 찾았다. 수열이 정렬되어 있다면 투 포인터 알고리즘 시간 복잡도는 O(N)이다.

'Algorithm > Programmers' 카테고리의 다른 글

12927. 야근 지수  (0) 2025.04.04
42884. 단속 카메라  (0) 2025.04.04
43105. 정수 삼각형  (0) 2025.03.31
176962. 과제 진행하기  (0) 2025.03.29
160585. 혼자하는 틱택토  (0) 2025.03.27
  1. 문제
  2. 제한사항
  3. 풀이
  4. 회고
'Algorithm/Programmers' 카테고리의 다른 글
  • 12927. 야근 지수
  • 42884. 단속 카메라
  • 43105. 정수 삼각형
  • 176962. 과제 진행하기
사랑우주인
사랑우주인
  • 사랑우주인
    lovelyAlien
    사랑우주인
  • 전체
    오늘
    어제
  • 글쓰기
    관리
    • 분류 전체보기 (207)
      • Programming (4)
        • Spring (28)
        • Java (46)
        • JPA (2)
        • 디자인 패턴 (5)
        • 개발&아키텍처 (0)
      • Network (12)
      • OS (19)
      • Database (1)
      • Kubernetes (0)
      • Kafka (2)
      • Algorithm (49)
        • BaekJoon (1)
        • Programmers (19)
        • Algorithm (5)
        • Socar (2)
        • LeetCode (19)
      • Interview (2)
      • Issues (2)
      • DotJoin (1)
      • Git (4)
      • 독서 (3)
      • 끄적끄적 (1)
      • 외부활동 (26)
        • 항해플러스 (2)
        • JSCODE 네트워크 (19)
        • JSCODE 자바 (5)
      • SQL (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • GitHub
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    clone graph
    Reorder List
    추상화 클래스
    OS
    BFS
    fcfs
    RR
    minimum number of arrows to burst balloons
    Thread
    pacific atlantic water flow
    운영체제
    디자인 패턴
    트랜잭션
    rotting oranges
    algorithm
    @JsonNaming
    wildcards
    제네릭
    준영속 엔티티
    Climbing Stairs
    runner 기법
    @JsonProperty
    socar
    lower bounded wildcards
    Process
    JSCode
    AuthenticationSuccessHandler
    Oauth2
    Generic
    LinkedList
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
사랑우주인
178870. 연속된 부분 수열의 합

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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