-
[코딩테스트] 백준(BAEKJOON) - 피보나치 함수(Java, 1003번)코딩테스트/백준 2023. 1. 6. 23:51728x90
안녕하세요.
오늘풀어본 문제는 제목은 간단하지만 의외로 이상한곳에 간단하지 않았던 문제
피보나치 함수입니다. DP의 대표적 문제로 피보나치라고하면 금방 떠오르실거라 생각됩니다.
그러나 백준의 자료입력받는 방식이 당최 적응이 안되네요.
이거때문에 몇 번을 틀렸는지 모르겠습니다.
자 그럼이제 시작해보겠습니다.
먼저 문제입니다.
https://www.acmicpc.net/problem/1003
1003번: 피보나치 함수
각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.
www.acmicpc.net
다음은 제가 작성한 코드입니다.
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader bf=new BufferedReader(new InputStreamReader(System.in)); int count=Integer.parseInt(bf.readLine()); for(int j=0;j<count;j++) { int number=Integer.parseInt(bf.readLine()); int[] fib1=new int[41]; int[] fib0=new int[41]; fib0[0]=1; fib1[0]=0; fib0[1]=0; fib1[1]=1; for(int i=2;i<=number;i++) { fib0[i]=fib0[i-1]+fib0[i-2]; fib1[i]=fib1[i-1]+fib1[i-2]; } System.out.println(fib0[number]+" "+fib1[number]); } } }
기존의 피보나치와 로직은 비슷합니다. 그러나 이번에는 0일경우와 1일 경우의 피보나치 수열을 각각 계산한다는데 아이디어가 있다고 보시면 되겠습니다.
또한 다른이들의 풀이를 보니 N-1항의 0의 갯수와 1의 갯수를 더해 N번째의 1의갯수를 찾던데 이런 아이디어도 있다는점 참고해 주시면 되겠습니다.
이번에는 간단한 만큼 마지막으로 제 풀이 남겨놓고 마무리하겠습니다.
감사합니다. :D
'코딩테스트 > 백준' 카테고리의 다른 글
[코딩테스트] 백준(BAEKJOON) - 연속합(Java, 1912번) (0) 2023.01.09 [코딩테스트] 백준(BAEKJOON) - 부녀회장이 될테야(Java, 2775번) (0) 2023.01.07 [코딩테스트] 백준(BAEKJOON) - 이친수(Java, 2193번) (1) 2023.01.05 [코딩테스트] 백준(BAEKJOON) - 1, 2, 3 더하기(Java, 9095번) (0) 2022.12.31 [코딩테스트] 백준(BAEKJOON) - 1로 만들기(Java, 1463번) (1) 2022.12.30