[백준 1003번 문제, JAVA] 피보나치 함수

2023. 2. 27. 01:47·이전 게시글/공부 관련

문제


코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int[][] lists = new int[41][2];
        lists[0] = new int[]{1, 0};
        lists[1] = new int[]{0, 1};

        for(int i=2; i<=40; i++) {
            lists[i] = new int[]{lists[i-2][0] + lists[i-1][0], lists[i-2][1] + lists[i-1][1]};
        }

        int n = Integer.parseInt(br.readLine());
        final StringBuilder sb = new StringBuilder();

        for(int i=0; i<n; i++) {
            int k = Integer.parseInt(br.readLine());
            sb.append(lists[k][0]).append(" ").append(lists[k][1]).append("\n");
        }

        System.out.println(sb);
        br.close();
    }
}

해결

내 수준에 맞는 문제가 여기있구나 ㅠㅠㅠㅠ 다른건 너무 어려웠는데 이건 풀만하네

 

피보나치 수열은 이런건데 문제에 재귀호출로 만든 함수를 알려준다

근데 그걸 쓰면 시간초과 에러가 난다

 

처음에는 메모리 초과 오류가 나길래 ArrayList를 없애고 그냥 배열로 했는데 시간 초과 에러가 나서

이걸 쓰면 안되는구나 싶었다

 

그래서 예전에 뭐 어떨때는 재귀보단 그냥 쓰는게 더 낫다는게 기억났다

근데 피보나치수열을 그냥 쓰는건 상관없는데

0이 몇개고 1이 몇개인지 어케아느냐에서 좀 고민했는데

 

 

앞에 0은 0을 1번, 1은 1을 1번 호출한다

이걸 미리 배열로 만들어놓고

2번째 오는 1은 앞에서 두번째의 0에서 (0을 1번 호출, 1은 0번) 앞에서 첫번째의 1에서 (0을 1번, 1을 1번) 호출한 것을 각각 더해서 넣게 되면 1, 2를 배열에 넣을 수 있다

 

나머지 뒤에것도 앞에서 두번째의 배열과 앞에서 첫번째의 배열의 각 인덱스의 값을 더하면 0과 1을 몇번 호출하는지 구할 수 있었다...

 

 

단 세번만에!! 기쁨의 세레모니~


참고

링크

 

 

 

 

 

저작자표시 (새창열림)

'이전 게시글 > 공부 관련' 카테고리의 다른 글

[백준 1027번 문제, JAVA] 고층 건물  (0) 2023.02.28
[자바 JAVA] Server Socket 소켓 통신 한글 깨짐 해결 BufferedReader, InputStreamReader, PrintWriter, OutputStreamWriter.... JDK한글깨짐, 자바한글깨짐  (0) 2023.02.28
[백준 1038번 문제, JAVA] 제곱 ㄴㄴ 수  (0) 2023.02.26
[백준 1085번 문제, JAVA] 직사각형에서 탈출  (0) 2023.02.26
[백준 1004번 문제, JAVA] 어린 왕자  (0) 2023.02.25
'이전 게시글/공부 관련' 카테고리의 다른 글
  • [백준 1027번 문제, JAVA] 고층 건물
  • [자바 JAVA] Server Socket 소켓 통신 한글 깨짐 해결 BufferedReader, InputStreamReader, PrintWriter, OutputStreamWriter.... JDK한글깨짐, 자바한글깨짐
  • [백준 1038번 문제, JAVA] 제곱 ㄴㄴ 수
  • [백준 1085번 문제, JAVA] 직사각형에서 탈출
aptenia
aptenia
공부하면서 배운 것들
  • aptenia
    새벽의 아이디어
    aptenia
  • 전체
    오늘
    어제
    • 분류 전체보기 (276)
      • f1tenth (2)
      • 이전 게시글 (268)
        • 개발 관련 (25)
        • 정보 관련 (19)
        • 공부 관련 (224)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 네이버 블로그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    티스토리HTML
    스크롤바CSS
    마인크래프트스크립트
    마인크래프트
    자바
    티스토리반응형2스킨편집
    프로그래머스
    빅데이터공모전
    c언어초보
    C언어
    컨텍스트스위칭
    이것이자바다연습문제
    캡스톤디자인
    반복하지않는수
    마인크래프트강화스크립트
    파이어베이스
    마크스크립트
    안드로이드
    이것이자바다확인문제
    C언어강좌
    마크
    C++강좌
    프로그래머스PCCE
    공개SW개발자대회
    파이썬
    백준
    콜라츠추측
    일본규슈공업대학교
    이것이자바다
    티스토리스킨편집
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
aptenia
[백준 1003번 문제, JAVA] 피보나치 함수
상단으로

티스토리툴바