Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- react-router
- 항해플러스
- C++
- JavaScript
- Algorithm
- programmers
- java
- axios
- 매일메일
- maeil-mail
- 테코테코
- redux
- react-redux
- createSlice
- 프로그래머스
- 알고리즘
- SW
- redux-toolkit
- useDispatch
- react
- 코딩테스트합격자되기
- Get
- redux-saga
- 이코테
- sw expert academy
- 항해99
- 자바
- Python
- 리액트
- json-server
Archives
- Today
- Total
Binary Journey
[Javascript][메모] 프로그래머스 피보나치 수, 2 x n 타일링 본문
반응형
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
일단 피보나치 수에서 내가 쓴 함수는 이렇다.
** Javascript
function solution(n) {
let a1 = 0, a2 = 1;
let answer = [a1, a2];
for (var i = 2; i <= n; i++) {
answer.push((answer[i - 1] + answer[i - 2]) % 1234567);
}
// return answer[n] ?? 0;
return answer[n] ? answer[n] : 0;
}
처음에 null 병합 연산자 이용해서 return 했는데 프로그래머스에서는 ES6가 안되는지 에러났었다.
그래서 answer[n] ? answer[n] : 0 으로 변경
** Python (2021.11.23)
def solution(n):
a1 = 0
a2 = 1
answer = 0
for i in range(n - 1):
answer = a1 + a2
a1 = a2
a2 = answer
return answer % 1234567
2 x n 타일링도 결국 피보나치 함수 물어보는 것이기에 이렇게 했다.
위 코드와 거의 같다.
function solution(n) {
let arr = [1, 2];
for (var i = 2; i <= n; i++) {
arr.push((arr[i-1] + arr[i-2]) % 1000000007);
}
return arr[n-1] ? arr[n-1] : 0;
}
아래 식들을 이용하여 해봤는데 시간초과, 런타임에러 떠서 다 실패함.
썼던 함수들은 나중에 꺼내보려고 잠시 기록해둔다.
이건 for문 사용해서 만든 함수
function fibonacciGeneral(number) {
let result = 0;
let a1 = 0, a2 = 1;
if (number <= 0) return a1;
if (number === 1) return a2;
for (var i = 0; i < number; i++) {
result = a1 + a2;
a1 = a2;
a2 = result;
}
return result;
}
재귀함수 호출한 것은 이것
function fibonacciRecursion(n) {
return n <= 1 ? n : fibonacciRecursion(n - 1) + fibonacciRecursion(n - 2);
}
위의 경우 77과 같은 큰 수를 넣었을 때 답이 나오지만 아래의 경우 큰 수는 계산이 오래 걸려서 답이 안 나올 수도 있음
반응형
'프로그래머스 > 메모' 카테고리의 다른 글
[Javascript][메모] 프로그래머스 음양 더하기 (0) | 2021.06.08 |
---|---|
[Javascript][메모] 프로그래머스 이진변환 반복하기 (0) | 2021.06.08 |
[Javascript][메모] 프로그래머스 3진법 (0) | 2021.06.08 |