프로그래머스 lv2 멀리뛰기 자바(Java) 동적계획법/ 피보나치수열

2023. 1. 31. 18:33·TechKnowledge/알고리즘

필자는 위의 유형과 같은 문제를 풀다 해결법이 안나오면 스케치를 해봅니다.

그러다 우연히 발견한것은 N에 대한 정답의 값이

n-1과 n-2 의 합과 같은 패턴

이것은 피보나치 수열입니다.

대부분의 알고리즘 문제에서 피보나치수열은 시간복잡도를 많이 소요하기 때문에 통과하기 어렵습니다.

자세한 설명과 이유는

https://eccsck.tistory.com/51에 있습니다.

역시나, 결과는 시간 초과입니다.

 

이번에는 배열을 통해 이전값들을 저장하고 다시 불러오는 동적 계획법을 이용해서 풀이해보겠습니다.

n의 크기만큼 값을 구하여 각각의 값을 저장하게 됩니다.

그렇게 되면 이전의 값을 구하기 위해 다시 계산하지 않기때문에 시간복잡도를 줄일수있습니다

확실히 시간복잡도가 개선 되어서 통과하게 되었습니다

public class LongJump {
    public long solution(int n) {
        long []cache =new long[n+1];
        cache[0]=1;
        cache[1]=2;
        for (int i=2; i<n;i++){
            cache[i]=(cache[i-1]+cache[i-2])%1234567;
        }
        return cache[n-1];
    }
}

 정답코드입니다.

혹시 풀이내용이 이해안가시면 댓글로 남겨주세요

저작자표시 (새창열림)

'TechKnowledge > 알고리즘' 카테고리의 다른 글

알고리즘 Contains 시간복잡도에 대한 정보 HashMap/ArrayList  (0) 2023.06.29
프로그래머스 lv2 괄호회전하기 자바(Java) Stack활용/ 올바른 괄호문제  (0) 2023.02.17
백준 2775: 부녀회장이 될테야 Java(자바) 동적계획법을 이용한 풀이  (0) 2023.01.10
최소신장트리/크루스칼 알고리즘  (0) 2023.01.04
항해 알고리즘 4일차  (0) 2022.05.17
'TechKnowledge/알고리즘' 카테고리의 다른 글
  • 알고리즘 Contains 시간복잡도에 대한 정보 HashMap/ArrayList
  • 프로그래머스 lv2 괄호회전하기 자바(Java) Stack활용/ 올바른 괄호문제
  • 백준 2775: 부녀회장이 될테야 Java(자바) 동적계획법을 이용한 풀이
  • 최소신장트리/크루스칼 알고리즘
김코딩개발자
김코딩개발자
  • 김코딩개발자
    김코딩의 개발로그
    김코딩개발자
  • 전체
    오늘
    어제
    • 분류 전체보기 (69)
      • 개발이야기 (19)
        • 개발로그 (7)
        • 항해일지 (11)
      • Develop (0)
      • Life (0)
      • Stack (29)
        • C++ (6)
        • Ext.js (1)
        • Spring (18)
        • Java (2)
        • JavaScript (2)
      • TechTrend (0)
      • TechKnowledge (20)
        • CS관련지식 (9)
        • 알고리즘 (9)
        • 네트워크 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    software docs
    개발 설계 문서
    직장인
    시간복잡도
    개발일기
    네트워크
    응답지연값
    개발 문서 작성방법
    DB원리
    ip통신
    자바스크립트입문
    lan 통신
    프로그래머스 멀리뛰기
    SpringBoot DB
    동적계획법
    데이터 용량단위
    서비스경험
    데이터 마이그레이션
    서비스 경험
    올바른 괄호
    지연수치표
    개발입문
    프로그래머스 LV2
    괄호문제
    관점지향프로그래밍
    osi 2계층
    대규모 트래픽
    동시성제어
    괄호 회전하기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
김코딩개발자
프로그래머스 lv2 멀리뛰기 자바(Java) 동적계획법/ 피보나치수열
상단으로

티스토리툴바