문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/131701
제한 사항
입출력 예
풀이
import java.util.HashSet;
class Solution {
public int solution(int[] elements) {
final int len = elements.length;
HashSet<Integer> answerSet = new HashSet<>();
int[] answer = new int[len];
for (int i = 0; i < len; i++) {
if (i == len - 1) break;
for (int j = 0; j < len; j++) {
answer[j] += elements[(j + i) % len];
answerSet.add(answer[j]);
}
}
return answerSet.size() + 1;
}
}
후기
처음에는 어떻게 풀어야 할지 헤맸는데 곰곰이 생각해 보니까 이전에 계산했던 것을 사용하는 부분이 있어서 DP를 이용하여 풀었다. DP에 대해서 조금은 감을 잡을 수 있었던 문제였다.
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
[프로그래머스][JAVA][Lv. 2] H-Index (0) | 2023.08.28 |
---|---|
[프로그래머스][JAVA][Lv. 2] n^2 배열 자르기 (0) | 2023.08.28 |
[프로그래머스][JAVA][Lv. 1] 2016년 (0) | 2023.08.28 |
[프로그래머스][JAVA][Lv. 1] 가운데 글자 가져오기 (0) | 2023.08.28 |
[프로그래머스][JAVA][Lv. 1] 같은 숫자는 싫어 (0) | 2023.08.28 |