https://school.programmers.co.kr/learn/courses/30/lessons/131701
1. 문제에 대한 이해
- 우리가 풀어야 할 문제는 무엇인가?
원형 수열의 연속 부분 수열 합으로 만들 수 있는 수의 개수를 return - 주어진 자료는 무엇인가?
원형 수열의 모든 원소 elements - 조건은 무엇인가?
원형 수열이란 일반적인 수열에서 처음과 끝이 연결된 형태의 수열을 말합니다.
3 ≤ elements의 길이 ≤ 1,000
1 ≤ elements의 원소 ≤ 1,000
2. 계획
- elements를 순회하면서 elements의 길이만큼 잘라서 새로운 배열의 뒤에 붙인다.
- 이때, 이 새로운 배열을 순회하면서 자른 길이만큼의 요소를 더한다.
- 이 값들은 빈 배열에 넣어준다.
- 빈 배열에 넣어준 값들 중에 중복 되는 것을 제거하고 그 길이를 리턴한다.
3. 실행
- 풀이 계획을 실행하고, 각 단계가 올바른지 점검하라.
const solution = (elements) => {
let sum = [];
for (let i = 1; i <= elements.length; i++) {
const el = elements.concat(elements.slice(0, i));
for (let j = 0; j < elements.length; j++) {
sum.push(el.slice(j, j + i).reduce((acc, cur) => acc + cur, 0));
}
}
const set = new Set(sum);
return [...set].length;
};
test('solution', () => {
expect(solution([7, 9, 1, 1, 4])).toEqual(18);
});
'코테연습' 카테고리의 다른 글
175. 스킬트리 Javascript (0) | 2023.01.09 |
---|---|
174. 2xn 타일링 (1) | 2023.01.09 |
172. 할인행사 Javascript (0) | 2023.01.05 |
171.귤 고르기 Javascript (0) | 2023.01.04 |
170. 문자열 나누기 Javascript (0) | 2023.01.03 |
댓글