우당탕탕 개발일기

[javascript] 백준 1003번 피보나치 함수 본문

What I Learned/Algorithm

[javascript] 백준 1003번 피보나치 함수

rilee 2022. 3. 21. 11:00
728x90

문제 

https://www.acmicpc.net/problem/1003

 

1003번: 피보나치 함수

각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.

www.acmicpc.net

당황스러운 문제 ^^! 보자마자 코드블럭은 뒤로하고 밑의 줄글을 차근차근 읽어보기로 했다.

 

이제 슬슬 익숙해지는 백준의 입출력값들. 첫번째 입력값은 테스트 케이스의 총 개수, 그리고 그 개수만큼의 각 테스트 케이스들!

 

 

 

✍🏻 풀이

더보기

첫번째 예제의 입력값

3 // 테스트 케이스의 개수 (T)
0
1
3

입력값의 첫번째가 3이므로 총 3개의 테스트 케이스들이 따라오는 것. 예제 2번도 마찬가지!

 

 

// '0이 출력되는 개수'  '1이 출력되는 개수'
1 0
0 1
1 2

 

 

 

 

💡 코드

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split("\n");

const len = input.shift(); //shift() 메서드는 배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환

for (let i = 0; i < len; i++) {
    const n = input[i];
	
    // fibonacci[0], fibonacci[1]은 정해져있다!
    const fibonacci = [[1, 0], [0, 1]];
    
    for (let j = 2; j <= n; j++) {
        fibonacci[j] = [
            fibonacci[j-1][0] + fibonacci[j-2][0], 
            fibonacci[j-1][1] + fibonacci[j-2][1]
        ];
    }

    console.log(fibonacci[n].join(" "));
}

 

 

 

 

📍 참고

https://gurtn.tistory.com/69

 

[JS] 백준 1003번 피보나치 함수

출처 백준 온라인 저지 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 문제 다음 소

gurtn.tistory.com

 

https://velog.io/@chelsea/1-%EB%8F%99%EC%A0%81-%EA%B3%84%ED%9A%8D%EB%B2%95Dynamic-Programming-DP#%EB%8F%99%EC%A0%81-%EA%B3%84%ED%9A%8D%EB%B2%95%EC%9C%BC%EB%A1%9C-%EA%B5%AC%ED%95%98%EB%8A%94-%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98-%EC%88%98%EC%97%B4

 

[자료구조와 알고리즘] 동적 계획법(Dynamic Programming, DP)

동적 계획법(Dynamic Programming) - 컴퓨터 공학 스터디 W1 자료구조와 알고리즘 내용에 앞서 학교에서 컴퓨터 공학 이론 스터디를 진행하고 있습니다. 매주 발표하는 내용을 시리즈로 업로드할 예정

velog.io

 

https://chunghyup.tistory.com/59

 

[알고리즘] 백준 - 1003 피보나치 함수 node js 구현

문제 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. 1 2 3 4 5 6 7 8 9 10 11 int fibonacci(int n) {     if (n == 0) {         printf("0");         return 0;     } else i..

chunghyup.tistory.com

 

728x90