https://school.programmers.co.kr/learn/courses/30/lessons/131701
문제를 처음부터 잘못 이해하기도 했고, 너무 어렵게 생각했다.
항상 문제를 볼때 어렵게 생각하지 말고 쉬운 생각부터 하나씩 해보자
핵심은
- copyOfRange 로 연속 부분 수열을 만들기
- set 을 이용해서 중복을 제거하기
- 원형이라는 조건이기 때문에 elements 의 두배가 되는 array 를 만들어놓기
class Solution {
fun solution(elements: IntArray): Int {
var answer: Int = 0
val newArr = IntArray(elements.size * 2) { 0 }
for (i in newArr.indices) {
newArr[i] = elements[i % elements.size]
}
val set = mutableSetOf<Int>()
for(i in 1 .. elements.size){
for(j in 0 .. elements.size){
set.add(newArr.copyOfRange(j, j+i).sum())
}
}
return set.size
}
}
반응형
'알고리즘' 카테고리의 다른 글
프로그래머스 - 피로도 (0) | 2024.08.27 |
---|---|
프로그래머스 - 할인 행사 (0) | 2024.08.27 |
프로그래머스 - 숫자 짝꿍 (0) | 2024.08.27 |
프로그래머스 - 혼자 놀기의 달인 (0) | 2024.08.26 |
프로그래머스 - 택배상자 (0) | 2024.08.25 |
프로그래머스 - 삼총사 (0) | 2024.08.25 |
프로그래머스 - 콜라 문제 (0) | 2024.08.21 |
프로그래머스 - 햄버거 만들기 (0) | 2024.08.21 |