(Java) 프로그래머스 - 연속 부분 수열 합의 개수

2023. 4. 28. 17:29·코딩 테스트

처음에는 단순히 슬라이딩 윈도우를 사용해서 풀려고 시도했다.

그러나 부분 수열의 크기가 고정되어 있지 않아서 풀이에 많은 시간이 걸렸다.

 


최종 코드

import java.util.*;
class Solution {
    public int solution(int[] elements) {
        int answer = 0;
        
        // 부분 수열 크기
        int size = 1;
        Set<Integer> set = new HashSet<>();
        
        // 부분 수열 크기가 elements 길이가 될때까지 반복
        while (size <= elements.length) {
            int sum = 0;
            // 부분 수열의 시작을 set에 추가
            for (int i = 0; i < size; i++) {
                sum += elements[i % elements.length];
                set.add(sum);
            }
            // 시작 인덱스부터 elements 끝까지 한칸씩 밀며 진행 
            for (int i = 0; i < elements.length; i++) {
                sum -= elements[i % elements.length];
                sum += elements[(i + size) % elements.length];
                set.add(sum);
            }
            size++;
        }
        answer = set.size();
        return answer;
    }
}

 

저작자표시 (새창열림)

'코딩 테스트' 카테고리의 다른 글

(Java) 프로그래머스 - 숫자 변환하기  (0) 2023.05.05
(Java) 프로그래머스 - 뒤에 있는 큰 수 찾기  (0) 2023.05.04
(Java) 프로그래머스 - 공원 산책  (0) 2023.04.26
(Java) 프로그래머스 - 개인정보 수집 유효기간  (0) 2023.04.25
(Java) 백준 15652 - N과 M (4)  (0) 2023.02.17
'코딩 테스트' 카테고리의 다른 글
  • (Java) 프로그래머스 - 숫자 변환하기
  • (Java) 프로그래머스 - 뒤에 있는 큰 수 찾기
  • (Java) 프로그래머스 - 공원 산책
  • (Java) 프로그래머스 - 개인정보 수집 유효기간
로승리
로승리
  • 로승리
    Roy's Blog
    로승리
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Issuefy
      • Language
      • Spring
      • Database
      • Network
      • Kubernetes
      • AWS
      • 코드스쿼드
      • 코딩 테스트
      • 생각정리
      • 국비지원
      • 회고
      • 컨퍼런스, 세미나
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
로승리
(Java) 프로그래머스 - 연속 부분 수열 합의 개수
상단으로

티스토리툴바