inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

8-C

8-C 질문

345

체스터

작성한 질문수 29

0

안녕하세요 강사님,

prev, cost, real_cost 부분이 잘 이해가 되지 않습니다... ㅜ

prev를 이전에 추가했을 친구수,

cost를 이번에 추가할 친구수로 생각하고,

real_cost가 진짜 추가한 친구수

라고 생각하면 될까요?

 

그래서 이전에 추가했을 친구수가 이번에 추가할 친구수보다 크거나 같다면, 이전에 이번보다 많은 친구를 추가했으니 더이상 추가할 필요가 없어서 0이 되는거고

작다면 새롭게 인원을 추가하면 되는 거로 생각했습니다.

 

이 부분이 잘 정리가 되지 않는거 같습니다 ㅜㅜ

부연 설명을 부탁드려도 될까요?

c++ 코딩-테스트

답변 1

0

큰돌

안녕하세요 재윤님 ㅎㅎ

 

prev를 이전에 추가했을 친구수,

cost를 이번에 추가할 친구수로 생각하고,

real_cost가 진짜 추가한 친구수

라고 생각하면 될까요?

>> 네 맞습니다.

    int cost = max(0, t - v[here].second); 
    int real_cost = (prev >= cost) ? 0 : cost;  

cost는 지금 시점에서 필요한 친구수입니다.

근데 그 전에 prev로 이미 친구를 많이 추가했다면 0이 되는 것이죠. 지금 필요한 친구수가 8인데 10을 추가했다면 추가할 필요가 없겠죠?

    if(num - real_cost >= 0){
        return ret = max(go(here + 1, num - real_cost, cost)+ v[here].first, go(here + 1, num, 0));
    }else return ret = go(here + 1, num, 0); 

그걸 기반으로 만약 지금 추가가 가능한 num이 남아있다면 추가하던가, 추가하지 않던가의 경우의 수를 기반으로 함수를 호출합니다.

num이 남아있지 않다면 추가를 못하는 경우의 수만이 존재하기 때문에 해당 함수만을 호출하는 것이죠.

 

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

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

감사합니다.

강사 큰돌 올림.

코딩살구클럽 가입부탁드립니다

0

18

2

코딩살구클럽 가입 요청 확인부탁드립니다

0

22

2

5-S 테스트 케이스 질문

0

31

2

코살 문제풀이 환경

0

45

2

2 - T 오큰수 문제가 있는 것 같습니다.

0

41

1

추천 추가문제들

0

41

2

프로그래머스 코테 환경 관련해서 질문드립니다.

0

43

2

해당 문제에 대한 채점이 코딩살구클럽에서 올바르게 처리되지 않습니다.

0

39

2

균형 이진 트리 설명 시 높이 숫자

0

30

2

4-H 질문드립니다.

0

35

2

1-K 질문드립니다.

0

41

2

대기업 인적성 시험 질문

0

41

2

4-C 질문드립니다

0

41

2

[수학숙제 / BOJ 2870] 채점 서버 오작동

0

37

1

코테 준비 질문

0

50

1

살구클럽가입 요청드려요

0

38

2

1-I 문제 질문

0

39

2

코딩살구클럽 가입

0

57

2

AI 코딩 도구 사용 시 학습 방법 조언

0

51

2

코딩살구클럽 오류

0

61

2

코살클 [3-F 괄호 추가하기] 프라이빗 9번 제보

0

46

1

코딩살구클럽 테스트 케이스 오류 제보

0

52

2

삼성 코딩테스트

0

61

2

틀린 이유를 못찾겠습니다

0

47

2