inflearn logo
강의

講義

知識共有

Javaアルゴリズムの問​​題解説:コーディングテストに備えて

4. フィボナッチ数列(メモ化再帰)

이런 코드는 어떤가요?

59

joel6106251

投稿した質問数 3

0

import java.util.*;

public class Main {
  public static void main(String[] args){
    Scanner in = new Scanner(System.in);
    solution(in.nextInt(), 1, 1, 0);
    in.close();
  }

  public static void solution(int target, int start, int value, int prevValue) {
    if (target >= start) {
      System.out.print(value + " ");
      solution(target, start + 1, value + prevValue, value);
    }
  }
}

다음과 같이 풀어보았는데요, 재귀와 메모이제이션을 비슷하게 구현한것 같아서요.

이렇게 작성하면 어떨지 문의드려요!

java 코딩-테스트

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

조영상님께서 작성해 주신 Java 코드를 살펴보았습니다. 이 코드는 재귀를 사용하여 간단한 수열을 계산하는 알고리즘이네요. 몇 가지 피드백을 드리자면:

  1. 재귀 함수 사용: 코드에서 solution 메소드는 재귀적으로 값을 출력하는 것으로 보입니다. 이전 두 수의 합을 다음 수로 이용하는 방식입니다. 피보나치 수열과 비슷한 구조로 볼 수 있습니다.

  2. 메모이제이션: 메모이제이션은 보통 이미 계산된 하위 문제의 답을 저장하고, 이를 필요할 때 빠르게 다시 사용하는 기법입니다. 이 코드에서는 메모이제이션이 적용되지 않고, 재귀 호출로만 해결되고 있습니다. 메모이제이션을 도입하려면 이전 결과를 저장하기 위한 배열이나 맵을 도입해야 합니다.

  3. 출력: 출력되는 수열이 어떤 수열인지 명확하지 않습니다. 이는 피보나치 수열과 유사해 보이므로, 어떤 수열을 나타내는 것인지 명확하게 하여 사용자가 이해할 수 있도록 설명하면 좋겠습니다.

  4. 개선 제안: 만약 메모이제이션을 추가하고 싶으시다면 값들을 저장하는 배열을 사용하여 같은 인덱스에 대해 재계산하지 않도록 변경할 수 있습니다.

코드 작성하신 것에 대한 추가적인 질문이나 수정이 필요하시면 자유롭게 문의주세요!

이미지 URL: Spring Boot Reference
Origin URL: Spring Boot Reference Origin

안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.

0

19

1

갑자기 채점 사이트가 바뀌었어요

0

19

1

문제 리스트 페이지

0

22

1

채점 사이트 관련 질문드립니다

0

20

1

봉우리 문제 질문입니다

0

79

2

씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?

0

62

0

이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?

0

70

0

가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법

0

67

1

좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ

0

83

2

6-7 강의에서

0

47

1

6-6. 장난꾸러기 질문 있습니다.

0

43

1

강의 수강후 코딩테스트

0

106

1

answer 변수 사용 여부

0

43

1

2중 for문

1

83

2

2-11. 임시반장정하기 (Runtime Error)

0

62

1

혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?

0

68

1

이런 풀이는 어떨까요

0

42

1

자바 스트림 방식의 효율성 질문 드립니다.

0

55

1

알고리즘 자료 구조들..

0

60

1

StringBuilder vs BufferdWriter

0

47

1

원더랜드(프림)

0

47

1

bfs 풀이

0

56

1

병합정렬

0

55

1

26강 임시반장 정하기에서 질문이 있습니다

0

43

1