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

최초로님의 프로필 이미지
최초로

작성한 질문수

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

4-F

4-f 질문입니다!!

작성

·

316

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

안녕하세요~!

go 함수에서

아래 if 문을 통해서 antic이 무조건 배워진다고 하셨는데 그 구체적인 로직이 이해가 가지 않는데 추가 설명 부탁 드려도 될까요?

if(index != 'a' - 'a' 
  && index != 'n' - 'a' 
  && index != 't' - 'a' 
  && index != 'i' - 'a' 
  && index != 'c' - 'a'){
    ret = max(ret, go(index + 1, k, mask));   
    }

 

답변 1

0

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

안녕하세쵸 최초로님 ㅎㅎ

일단 이문제의 경우의 수는 해당 알파벳을 배우느냐, 안배우느냐 이 2가지죠.

근데

 

if(index != 'a' - 'a' 
  && index != 'n' - 'a' 
  && index != 't' - 'a' 
  && index != 'i' - 'a' 
  && index != 'c' - 'a'){
    ret = max(ret, go(index + 1, k, mask));   
    }

이거는요 a, n, t, i, c가 모두 아닐때!!!!

해당 부분을 배우지 않고 지나가는 로직이죠?

그저 index + 1을 하는거니까요.

 

이 문제는 a, n, t, i, c를 반드시 배워야 합니다.

즉, a, n, t, i, c가 모두 아닐때!!!!는 배우지 않고 넘어가는게 허용이 되지만 그 반대는 허용되지 않아서 저 if문을 집어넣은거에요 ㅎㅎ

 

 

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

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

감사합니다.

강사 큰돌 올림.

최초로님의 프로필 이미지
최초로

작성한 질문수

질문하기