코테/프로그래머스
[프로그래머스/Lv. 2] 연속 부분 수열 합의 개수 (JAVA)
imname1am
2023. 9. 14. 15:45
반응형
🔺 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
import java.util.*;
import java.io.*;
class Solution {
static int[] elements;
static Set<Integer> set = new HashSet<>(); // 부분 수열 합 집합
public int solution(int[] elements) {
this.elements = elements;
// n개 뽑는 경우의 수
for(int len = 0 ; len < elements.length ; len++) { // 현재 인덱스 + 0 ~ 마지막 인덱스까지 길이 더하기
for(int i = 0 ; i < elements.length ; i++) { // 첫 번째 인덱스부터 마지막 인덱스까지 접근
solve(i, i + len);
}
}
return set.size();
}
private static void solve(int a, int b) {
int tmp = 0;
for(int i = a ; i <= b ; i++) {
tmp += elements[i % elements.length];
}
set.add(tmp);
}
}
|
cs |
✅ 해결 아이디어
✔ Set
- 0부터 elements.length - 1번째 원소가
(각자 위치 ~ 각자 위치 + a)만큼 더한 범위에서 어떤 값이 나오는지 구하고,
집합에 저장한다.
💬 느낀 점
이것이 레벨2..?
백준이랑 레벨이 좀 차이나서 조금 당황스럽다...
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
반응형