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

Inflearn Community Q&A

mmmg7633565's profile image
mmmg7633565

asked

10-Week C++ Coding Test | Algorithm Coding Test

1-K

1-K 어떤 반례가 있는지 모르겠습니다

Resolved

Written on

·

47

·

Edited

0

c++코딩-테스트

Answer 2

0

kundol님의 프로필 이미지
kundol
Instructor

안녕하세요 ㅎㅎ

odd 부분이 잘못된 것 같습니다.

odd의 초기값을 전역변수로 안해놓으면 0이 아닌 쓰레기값이 들어갈 수 있기 때문에 이부분을 신경써주고 무조건 odd를 더하지 않게 수정해야 합니다.

	int odd = -1; 
	for(int i = 0; i < sizeof(a)/sizeof(a[0]); i++){
		if(a[i] % 2 == 1) odd = i;	
		for(int j = 0; j < a[i] / 2; j++){
			ret += 'A' + i;	
		}
	}
	
	string tmp;
	tmp = ret;
	reverse(tmp.begin(), tmp.end());
	if(odd != -1)ret += 'A' + odd; 
	ret += tmp;

이런식으로 해보시겠어요?

 

감사합니다.

0

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

1-K 문제에서 테스트 케이스가 통과되지 않는 반례를 찾고 계시군요. 비슷한 문제를 겪었던 다른 학습자의 질문을 통해 문제를 해결할 수 있을 것 같습니다.

여기 두 가지 유사한 게시물을 추천해 드립니다:

  1. “1-K 반례 알 수 있을까요…” - 이 게시물에서는 어떤 경우에 알고리즘이 실패할 수 있는지에 대한 설명과 함께, 몇 가지 특정한 문자열 구조가 문제를 일으킬 수 있다는 점을 논의하고 있습니다. 응용 프로그램의 기초적인 흐름부터 캐릭터의 짝수/홀수 개수와 관련된 조건까지 점검해 보시면 좋습니다.

  2. “1 - K 질문입니다!” - 슬라이드 뒤집기 및 캐릭터 처리 방식에 관한 여러 가지 제안과 솔루션이 포함되어 있습니다. 중간에 홀수로 남아야 할 문자와 관련된 논의도 있으니 참고하세요.

이런 링크들을 통해서 유사한 문제를 접했을 때 어떤 부분을 체크해야 하는지 알 수 있을 것입니다. 코드를 디버깅할 때는 특히 문자열이 대칭인지, 모든 조건을 충족하는지 살펴보면 좋습니다.

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

mmmg7633565's profile image
mmmg7633565

asked

Ask a question