-
[Programmers] 연속 부분 수열 합의 개수 / ⭕Algorithm/Programmers 2024. 10. 3. 23:40
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 제출 코드 (21분 32초 / 구현)
import java.util.*; class Solution { public int solution(int[] elements) { int answer = 0; Set<Integer> set = new HashSet<>(); for(int i = 1; i <= elements.length; i++) { for(int j = 0; j < elements.length; j++) { int temp = 0; int idx = j; int cnt = 0; while(cnt < i) { if(idx >= elements.length) { idx = 0; } temp += elements[idx++]; cnt++; } set.add(temp); } } answer = set.size(); return answer; } }
2. 구현 로직
- for문을 이용하여 연속 부분 수열의 길이 지정
- 2중 for문을 작성하여 수열이 시작하는 위치를 갱신
- whlie문을 통해 연속 부분 수열의 합을 구하는데 원형 수형이므로 idx가 elements의 길이를 넘어가면 0으로 갱신
- 나온 값을 set에 저장하여 중복 제거
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] 디펜스 게임 / ❌ (0) 2024.10.05 [Programmers] 테이블 해시 함수 / ⭕ (0) 2024.10.04 [Programmers] 택배 배달과 수거하기 / ❌ (1) 2024.10.02 [Programmers] 귤 고르기 / ⭕ (0) 2024.07.24 [Programmers] 마법의 엘리베이터 / ⭕ (1) 2024.07.23