인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

Dongni님의 프로필 이미지
Dongni

작성한 질문수

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

1-K

1-K 펠린드롬 문제 2% 실패 반례좀 찾아주세요 ㅠㅠ

해결된 질문

작성

·

43

0

http://boj.kr/24eb99ddd0bb4e11af50a5e4579c8107

 

해당 문제에 대해서 진짜 많이 고민해보았는데, 원인을 알 수가 없습니다..

 

기본적인 부분에서 틀린 것 같은데, 코드가 지저분한 것 같아서 그런지 봐도 문제가 무엇인지 잘 모르겠습니다 ㅠㅠ

답변 2

0

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

안녕하세요 ㅎㅎ

지금의 코드는 끝자리 알파벳 z가 홀수인경우 바로 for문이 종료되게 됩니다. 이부분에 대한 반례가 생기는 것이죠 ㅎㅎ

이렇게 해보시겠어요? 그리고 exit(1)이 아니라 return 0을 해야 합니다.

	for (int i = 0; i < 26; i++) { 
		if (arr[i] % 2 == 1) { // 영어 이름에서 스펠링이 '홀수'개 나온 것들 찾음
			odd_cnt++;
			ans += (char)(i + 65); // 빈 ans 문자열에 추가하면 자연스럽게 중앙에 오게 됨
			arr[i]--; // 중앙에 해당 스펠링을 배치하고 하나만큼 감소 -> 해당 스펠링은 다시 짝수개로 변함
		}
		if (odd_cnt > 1) { // 영어 이름에서 스펠링이 '홀수'개 나온 것이 '홀수'개 존재하면 펠린드롬이 될 수 없음
			cout << "I'm Sorry Hansoo";
			return 0; 
		}
	}

 

 


 

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

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

감사합니다.

강사 큰돌 올림.


0

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

펠린드롬 문제에서 2%에서 실패한다면, 대개는 특정한 조건이나 예외 케이스를 놓쳤을 가능성이 큽니다. 이와 유사한 문제에 대한 논의가 있었던 링크들을 공유드리니 참고하시기 바랍니다.

유사 질문 및 답변

  1. 1-K 팰린드롬 만들기 반례를 찾지 못하겠습니다.

    • 이 질문에서는 지역 변수로 인해 발생할 수 있는 초기화 문제와 관련하여 조언이 제공되었습니다. 조건문에서의 변수 초기화가 중요한 역할을 할 수 있음을 언급하고 있습니다.
  2. 반례를 못찾겠습니다. (2-B 문제 관련)

    • 이 질문은 반례를 찾는데 어려움을 겪는 경우 코드에서의 초기화 문제와 경계 조건에 대한 점검이 도움이 될 수 있음을 설명합니다.

이 답변을 통해 문제의 패턴을 이해하고, 코드 검사에 있어 초기화나 조건 검토의 중요성을 확인해 보시기 바랍니다. 특히, 지역 변수 사용 시 초기화를 반드시 확인하고 전역 변수로 변경하는 경우도 고려해 보세요. 이는 알고리즘이 예상 외의 데이터를 처리할 때의 문제점을 바로잡는 데 유용합니다.

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

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

"난 아직 배고프다"

Dongni님의 프로필 이미지
Dongni

작성한 질문수

질문하기