인프런 커뮤니티 질문&답변

이희수님의 프로필 이미지
이희수

작성한 질문수

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

4-F

4-F MAX 처리에 대한 질문

작성

·

145

0

int go(int index, int k, int mask) {

if (k < 0) return 0;

if (index == 26) return count(mask);

int ret = go(index+1, k-1, mask | (1 << index));

if (index != 'a'-'a' && index != 'n'-'a' && index != 't'-'a' && index != 'i'-'a' && index != 'c'-'a') {

ret = max(ret, go(index+1, k, mask));

}

return ret;

}

위 GO함수 내에서 마스킹할때는 ret에 max 처리를 하지 않았는데 마스킹하지 않을 경우에 ret에 max처리를 하신 이유가 궁금해서 질문드립니다! 어떠한 차이가 있는건지 잘 이해가 안가네요 ㅜㅜ

답변 1

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 희수님 ㅎㅎ

이건 이렇게 생각하시면 되요.

A = 1;

A = max(1, 2);

이렇게 하면 1과 2중에서 max값이 담기죠?

이부분의 코드도 해당 알파벳을 배웠을 때 배우지 않았을 때의 경우의 수 중 최대값을 담아야 하기 때문에 저런 코드가 들어가는 것입니다.



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

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

감사합니다.

강사 큰돌 올림.


이희수님의 프로필 이미지
이희수

작성한 질문수

질문하기