문제: https://school.programmers.co.kr/learn/courses/30/lessons/131701
1. 코드
import java.util.*;
class Solution {
public int solution(int[] elements) {
Set <Integer> set = new HashSet<>();
for(int i = 0; i < elements.length; i++) {
int sum = 0;
for(int j = 0; j < elements.length; j++) {
sum += elements[(i + j) % elements.length];
set.add(sum);
}
}
return set.size();
}
}
2. 설명
Set을 이용하여 중복된 값을 제거하며 반복문을 통해서 모든 경우의 부분 수열을 구합니다. 만약 인덱스 값을 넘어간다면 elements 크기만큼의 나머지를 인덱스로 지정하면 0부터 시작되어 마치 원으로 이어진 것처럼 진행이 가능합니다.
3. 정리
- Set을 이용한 중복 제거
- 배열에서 % 연산자 활용
출처: 프로그래머스 코딩 테스트 연습,
https://school.programmers.co.kr/learn/challenges
'컴퓨터 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 87390번: n^2 배열 자르기 [Java] (0) | 2023.09.28 |
---|---|
프로그래머스 - 42747번: H-Index [Java] (0) | 2023.09.23 |
프로그래머스 - 76502번: 괄호 회전하기 [Java] (0) | 2023.08.26 |
프로그래머스 - 138476번: 귤 고르기 [Java] (0) | 2023.08.25 |
프로그래머스 - 12914번: 멀리 뛰기 [Java] (0) | 2023.08.24 |