[Node.js_4기] 코드카타 : 멀리뛰기 (24/03/14)
2024. 3. 14. 13:31ㆍ공부/코테준비
목차
1. 문제
코딩테스트 연습 - 멀리 뛰기 | 프로그래머스 스쿨 (programmers.co.kr)
<문제 설명>
효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는
(1칸, 1칸, 1칸, 1칸)
(1칸, 2칸, 1칸)
(1칸, 1칸, 2칸)
(2칸, 1칸, 1칸)
(2칸, 2칸)
의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다.
2. 시도
function solution(n) {
let count = 0;
let way = [1,2]
let how = []
let sum = how.reduce((a,b)=>a+b)
while(sum!=5){
// answer ++
console.log(1)
break
}
return count
}
for문을 돌려서 횟수를 ++ 하면 되겠지 하면서 시도해 보던 중에,
[JS] 프로그래머스 - 멀리뛰기 (tistory.com)
해당 글을 볼 수 있었다.
정리하자면, 해당 문제의 답은 [0,1,2]로 시작되는 피보나치 수열이라는 것이다...
function solution(n) {
const answer = [0,1,2]
for(let i=3;i<=n;i++){
answer[i]=(answer[i-1]+answer[i-2])%1234567
}
return answer[n];
}
3. 결과
테스트 1 〉 | 통과 (0.03ms, 33.4MB) |
테스트 2 〉 | 통과 (0.03ms, 33.5MB) |
테스트 3 〉 | 통과 (0.05ms, 33.6MB) |
테스트 4 〉 | 통과 (0.05ms, 33.5MB) |
테스트 5 〉 | 통과 (0.05ms, 33.4MB) |
테스트 6 〉 | 통과 (0.06ms, 33.4MB) |
테스트 7 〉 | 통과 (0.11ms, 33.6MB) |
테스트 8 〉 | 통과 (0.07ms, 33.4MB) |
테스트 9 〉 | 통과 (0.08ms, 33.4MB) |
테스트 10 〉 | 통과 (0.10ms, 33.4MB) |
테스트 11 〉 | 통과 (0.17ms, 33.5MB) |
테스트 12 〉 | 통과 (0.29ms, 33.5MB) |
테스트 13 〉 | 통과 (0.15ms, 33.4MB) |
테스트 14 〉 | 통과 (0.19ms, 33.5MB) |
테스트 15 〉 | 통과 (0.16ms, 33.5MB) |
테스트 16 〉 | 통과 (0.18ms, 33.5MB) |
4. 배운점
이번 문제는 문제에서 보여준 로직이 아니라 테스트케이스의 경향에서 정답을 찾아내야 했던 문제였습니다.
lv2에 올라오고 부터는 혼자서 푸는게 버거워지고 있습니다.
'공부 > 코테준비' 카테고리의 다른 글
[Node.js_4기] 코드카타 : 가장 큰 수 (24/03/11) (1) | 2024.03.12 |
---|---|
[Node.js_4기] 코드카타 : 할인행사 (24/03/08) (0) | 2024.03.11 |
[Node.js_4기] 코드카타 : n개의 최소 공배수 (24/03/07) (0) | 2024.03.07 |
[Node.js_4기] 코드카타 : 피보나치 수열 (24/02/26) (0) | 2024.02.26 |
[Node.js_4기] 코드카타 : 이진 변환 반복하기 (24/02/22) (0) | 2024.02.22 |