Search
Duplicate

유조리타

Tags
Created
2021/11/16 05:54

팀 이름

유조리타
유조 + 리타

사용할 언어

JavaScript

문제

피보나치 수는 F(0) = 0, F(1) = 1일 때, 2 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 점화식입니다. 2 이상의 n이 입력되었을 때, fibonacci 함수를 제작하여 n번째 피보나치 수를 반환해 주세요. 예를 들어 n = 3이라면 2를 반환해주면 됩니다.
ex_ F(4)인 경우 0 1 1 2 '3' 이므로 F(4) = 3 입니다.
Plain Text
복사
// 1번 재귀로 구현 function fibonacci(n) { if(typeof n !== 'number') return; if(n < 2) return n; return fibonacci(n - 1) + fibonacci(n - 2); }
JavaScript
복사
// 2번 반복문과 변수로 구현 function fibonacci(n){ if(typeof n !== 'number') return; if(n < 2) return n; let preprev = 0; let prev = 1; let curr = 0; for (let i = 2; i <= n; i++) { curr = preprev + prev; preprev = prev; prev = curr; } return curr; }
JavaScript
복사
// 3번 배열에 메모하기(인덱스로 접근) function fibonacci(n){ if(typeof n !== 'number') return; if(n < 2) return n; const arr = [0,1]; for (let i = 2; i <= n; i++) { arr.push(arr[i - 1] + arr[i - 2]); } return arr[arr.length - 1]; }
JavaScript
복사

문제2 (~21:40)

waterMelon함수는 정수 n을 매개변수로 입력받습니다.
길이가 n이고, 수박수박수…와 같은 패턴을 유지하는 문자열을 리턴하도록 함수를 완성하세요.
ex_ waterMelon(4)이 4이면 ‘수박수박’을 리턴하고 waterMelon(3)이라면 ‘수박수’를 리턴하면 됩니다.
Plain Text
복사
//방법1 function waterMelon(n){ if(typeof n !== 'number') return; if(n<1) return ''; const watermelon = '수박'; if(n % 2 === 0 ){ return watermelon.repeat(n / 2); } else { return watermelon.repeat(n / 2) + '수'; } }
JavaScript
복사
const start = Date.now(); //방법1 function waterMelon(n){ if(typeof n !== 'number') return; if(n<1) return ''; const watermelon = '수박'; if(n % 2 === 0 ){ return watermelon.repeat(n / 2); } else { return watermelon.repeat(n / 2) + '수'; } } waterMelon(5000000) const end = Date.now() console.log(end - start
JavaScript
복사
//방법2 function waterMelon(n){ if(typeof n !== 'number') return; if(n<1) return ''; let result = ''; for(let i = 1; i <= n; i++){ if (i % 2 === 1){ result += '수'; } else{ result += '박'; } } return result; }
JavaScript
복사
const start = Date.now(); //방법2 function waterMelon(n){ if(typeof n !== 'number') return; if(n<1) return ''; let result = ''; for(let i = 1; i <= n; i++){ if (i % 2 === 1){ result += '수'; } else{ result += '박'; } } return result; } waterMelon(5) const end = Date.now() console.log(end - start)
JavaScript
복사
console.time() //방법1 //default: 0.02685546875 ms function waterMelon(n){ if(typeof n !== 'number') return; if(n<1) return ''; const watermelon = '수박'; if(n % 2 === 0 ){ return watermelon.repeat(n / 2); } else { return watermelon.repeat(n / 2) + '수'; } } waterMelon(5000000) console.timeEnd()
JavaScript
복사
console.time() //방법2 //default: 498.68115234375 ms function waterMelon(n){ if(typeof n !== 'number') return; if(n<1) return ''; let result = ''; for(let i = 1; i <= n; i++){ if (i % 2 === 1){ result += '수'; } else{ result += '박'; } } return result; } waterMelon(5000000) console.timeEnd() //default: 498.68115234375 ms
JavaScript
복사