yeonsoocho   2년 전

for문에서 길이까지 반복하는 for문과 a~z까지 반복하는 for문의 위치만 바꿨을 뿐인데 결과가 다른 이유가 뭔지 알 수 있을까요?

도저히 모르겠습니다.

맞는코드:22~27

틀린코드:14~18

그외코드는 동일합니다.

pinoco3   2년 전

틀린 코드의 경우

문자 하나당 모든 알파벳을 탐색하게 됩니다.

따라서 aa 같은 입력이 들어오면

첫번째 a에 if문이 참이 되어 num배열에 0이 저장이 되고 빠져나옵니다.

그 이후, 두번째 a를 기준으로 탐색을 하게 되고 두번째 a도 참이 되어 num배열에 1이 저장되고 빠져나옵니다.

따라서 1 -1 -1 -1 -1 ...

같은 반례가 생깁니다.


반면, 맞은 코드의 경우

알파벳을 기준으로 탐색하게 됩니다.

aa 입력이 들어오게 되면

a를 기준으로 탐색하여 제일 첫번째 a가 if문 참이 되면서 배열 탐색을 종료하며 b를 기준으로 탐색하게 됩니다.

두서없이 적어 이해가 어려우시면 댓글 부탁드립니다.

yeonsoocho   2년 전

저번에도 이 문제와 관련된 질문을 했을 때 반례를 들어주시면서 답변해주셔서 감사했습니다.

정말 이해가 쉬운 설명입니다. 감사합니다!!!

댓글을 작성하려면 로그인해야 합니다.