https://school.programmers.co.kr/learn/courses/30/lessons/12924
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제에 대한 이해
- 우리가 풀어야 할 문제는 무엇인가?
- 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하라 - 주어진 자료는 무엇인가?
- 자연수 n - 조건은 무엇인가?
- n은 10,000 이하의 자연수
2. 계획
- n의 약수이면서 홀수인 개수를 구해서 리턴한다.
3. 실행
- 풀이 계획을 실행하고, 각 단계가 올바른지 점검하라.
const solution = (n) => {
let submultiple = [];
for (i = 1; i <= n; i++) {
if (n % i === 0 && i % 2 === 1) {
submultiple.push(i);
}
}
return submultiple.length
}
test('countAcc', () => {
expect(solution(15)).toEqual(4);
expect(solution(1)).toEqual(1);
expect(solution(2)).toEqual(1);
expect(solution(3)).toEqual(2);
expect(solution(4)).toEqual(1);
expect(solution(5)).toEqual(2);
expect(solution(6)).toEqual(2);
});
4. 반성
- 재귀를 사용해서 풀었다가 효율성에서 통과를 못했었고 "주어진 자연수를 연속되는 정수들의 합으로 표현할 수 있는 방법의 수가 주어진 자연수의 약수 중에서 홀수인 수의 개수와 같다." 라는 것을 알게 되었고 이를 반영해서 해결할 수 있었다.
'코테연습' 카테고리의 다른 글
132. 이것이 코딩 테스트다 : 11장 곱하기 혹은 더하기 Javascript (0) | 2022.09.14 |
---|---|
131. 이것이 코딩 테스트다 : 11장 모험가 길드 Javascript (0) | 2022.09.14 |
129. 이상한 문자 만들기 Javascript (0) | 2022.09.12 |
128. 약수의합 Javascript (0) | 2022.09.12 |
127. 시저암호 Javascript (0) | 2022.09.12 |
댓글