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

__yourspring님의 프로필 이미지
__yourspring

작성한 질문수

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

1-K

1-K 1213 펠린드롬 질문있습니다.

작성

·

60

0

http://boj.kr/d01d9b144442469eae778012296cc3e1

해당 코드가 반례가 뭔지 도저히 모르겠습니다.

번거로우시겠지만 한번 부탁드려도 될까요?

답변 1

0

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

안녕하세요 ㅎㅎ

		if (i->second > 0)
			i = palindrome.rbegin();

이부분 때문에 문제가 되는 것 같습니다.

예를 들어 aaaabbbb가 있을 때 a를 만났을 때 다시 b로 돌아가서 로직을 수행하게 됩니다.

만약 해당 cnt가 있다면 while문이나 for문을 써서 해당 cnt를 온전히 소모하는 식으로 바꿔보시겠어요?

 


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

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

감사합니다.

강사 큰돌 올림.

__yourspring님의 프로필 이미지
__yourspring
질문자

감사합니다. 별점 5점 및 수강평은 배민으로 강화학습하여 이미 제가 하였습니다! 호호
큰돌형님 책도 샀는걸요
혹시 하나 더 여쭙고 싶은게 있는데... 반례를 어떻게 그렇게 쉽게 찾으시는지 여쭤볼 수 있을까요?

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

안녕하세요 ㅎㅎ

배민 강화학습 ㅋㅋㅋ 저도 오늘 배민 댓글 써야겠네요 ㅎㅎ

5점 정말 감사합니다.

반례는 문제를 많이 푼 경험 + 팁을 기반으로 쉽게 찾아낼 수 있습니다. 참고로 팁같은 경우 제가 문제 해설강의 틈틈히 넣어놨습니다. ㅎㅎ

 

이 코드의 경우 다른 부분은 아무런 문제가 없었는데 불필요한 부분이 뭘까? 라고 생각했습니다. 어느정도는 맞는 코드니까요. 보통 불필요한 코드 -> 여기서 이상한 동작 -> 반례가 나타나기도 합니다.

이 코드같은 경우 굳기 rbegin()까지 가야하나? 라고 생각했고 -> 반례를 찾았습니다.

 

감사합니다.

__yourspring님의 프로필 이미지
__yourspring

작성한 질문수

질문하기