inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

7-Q

7-Q 질문있습니다 :)

해결된 질문

98

한유태

작성한 질문수 79

0

안녕하세요 선생님 🙂

어려운 문제는 아니었던거 같지만 모르겠는 부분이 생겨서 질문 드립니다.

 

  1. visual studio에서는 배열의 범위가 초과되었다는 에러가 계속 뜹니다. 선생님 코드와 다른 점이 없는지 여러 번 검증해보았지만 차이가 없어서 백준에 제출해봤는데요, 맞았다고 하더라구요..

     

    arr의 크기를 18이 아닌 20으로 잡아도 동일한 에러가 잡힙니다. 컴파일러에서 왜 에러가 뜨는건지 모르겠습니다..

image.png

 

http://boj.kr/f91936720fc54768adb00def9dc32b35

 

  1. 메모이제이션 범위가 이해되지 않아 다른 숫자들로 넣어봤는데요, 0.0까지는 문제가 없더라구요. 메모이제이션 범위를 -0.5로 두신 이유가 궁금합니다.

     

c++ 코딩-테스트

답변 2

1

큰돌

안녕하세요 유태님 ㅎㅎ

arr의 크기를 18이 아닌 20으로 잡아도 동일한 에러가 잡힙니다. 컴파일러에서 왜 에러가 뜨는건지 모르겠습니다..

-> 해당 코드 확인해봤는데요. 제 컴파일러에서는 에러가 뜨지 않습니다. 이부분은 저도 잘 모르겠습니다.. 다른 컴파일러를 사용해주세요.

참고로 다음의 코드는 문제가 있는 코드입니다. 18까지 잡았으면 17까지 참조되게 해야 합니다.

		for (int j = i + i; j <= 18; j += i)
		{
			arr[j] = 0;

 

0.0까지는 문제가 없더라구요. 메모이제이션 범위를 -0.5로 두신 이유가 궁금합니다.

->

이 문제같은 경우 0.0이하인 수로 메모이제이션을 걸어도 됩니다.

double go(int idx, int x, int y){
    if(idx == n) return isP[x] || isP[y] ? 1.0 : 0.0; 
    double &ret = dp[idx][x][y]; 
    if(ret >= 0.0) return ret; 

앞의 코드처럼 해도 됩니다.

-0.5는 그냥.. 0.0 이하인수중에서 하나 골라서 했습니다. ㅎㅎ

 

 


또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


0

인프런 AI 인턴

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

질문하신 내용과 관련하여 유사한 문제를 다룬 기존 질문들을 찾아보았습니다. array 범위 초과 에러와 메모이제이션 범위 설정에 관한 문제에 대해 아래의 링크들을 참고하시면 도움이 될 것 같습니다.

배열 범위 초과 에러

Visual Studio에서 배열의 범위 초과 에러가 발생하는 부분에 대해, 유사한 이슈를 겪은 다른 수강생들의 질문과 답변을 보실 수 있습니다.

  1. 런타임 에러 질문있습니다!
    • 런타임 에러와 관련된 유사한 문제를 다루고 있습니다. 강사님이 인덱스 관련 에러에 대해 설명하며, string을 int로 변환할 때의 문제를 지적합니다.
  2. 4-B 문제 메모리 초과 문의
    • 배열의 크기를 잘못 설정해서 발생한 메모리 초과 문제에 대해 다룹니다. 강사님이 인덱스 설정의 중요성에 대해 설명합니다.
  3. 시간초과 관련 질문입니다!
    • 코드가 배열의 범위를 벗어났을 때 발생하는 문제에 대해 다룹니다. 강사님이 Visual Studio와 관련된 배열 인덱스 문제와 컴파일러 차이에 대해 설명합니다.

메모이제이션 범위 설정

메모이제이션 범위를 설정하는 이유와 관련된 설명들을 찾았습니다.

  1. 1-L 질문 있습니다!
    • 코드의 최적화와 관련된 문제를 다루며, 성능 최적화 및 메모이제이션에 대한 일반적인 방법론을 설명합니다.

이 링크들을 통해 유사한 문제에 대한 해결책을 얻으실 수 있을 겁니다. 추가적으로, 메모이제이션의 범위를 설정할 때는 코드의 특성과 문제의 요구사항에 맞게 설정하는 것이 중요합니다. 필요한 범위 내에서 최적화해야 하며, 범위를 줄이거나 늘리면 성능 및 정확도에 영향을 미칠 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

교안 158페이지 문의드립니다

0

16

2

코딩살구클럽 관련 건의사항

0

35

1

코살에 19942 다이어트 문제에 N의 범위가 빠져있슴니다

0

19

1

진행 방법 질문드립니다!

0

52

2

2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.

0

58

2

2주차 개념#12 트리 순회

0

27

2

백준사이트가 종료된다고 합니다.

0

287

2

백준 서비스 종료

9

890

1

sk 하이닉스 코테 대비

0

368

2

3-G 최댓값 질문

0

51

1

모듈러 연산 값이 10이 아닌 경우도 있지 않나요?

0

83

2

3-I 코드 질문드립니다.

0

62

2

3-N 질문 있습니다.

0

66

2

학습방법

0

102

2

4-H 질문 있습니다 (코드 리뷰)

0

66

2

코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.

0

170

2

2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.

0

69

2

2주차 개념 #4-2. 인접행렬 질문있습니다.

0

64

2

1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.

0

51

2

조합 재귀 풀이 확인 해주시면 감사하겠습니다.

0

68

2

함수별 시간복잡도

0

73

2

3-h 질문입니다.

0

49

1

안녕하세요 선생님. 시간 복잡도 4번 질문있습니다.

0

53

2

1-I 문제 질문 드립니다.

0

76

2