elisha0103   1년 전

1316번 문제 질문입니다.

아래 코드가 왜 틀렸는지 잘 모르겠습니다.

예제 입력과 출력 모두 동일하게 나옵니다.

근데 제출하면 틀렸다고하네요

adung7   1년 전

음.. 일단 11번째줄에서 널문자를 고려해 배열길이를 101로 설정해주셔야 하고

strlen함수를 조건문에 넣는건 한번 반복을 할때마다 함수를 실행시키기 때문에 비효율적입니다.

sen의 길이를 변수에 저장해두고 반복문의 조건에 넣으시는걸 추천드리고

23번째줄 조건문에서 alpha[k]를 -1로 설정해두고 반복문을 나가지 않아 다시 21번째줄 조건문에서 걸리게 되어 

그룹 단어가 아님에도 불구하고 그룹단어로 인식될수 있습니다. ex) abaa 3번째 a에서 -1로 설정되지만 4번째 a에서 if조건인 sen[j - 1] == sen[j]이 성립되게 되어 alpha[k]++가 실행됩니다. 따라서 작성자님 코드에선 1로 나오게 됩니다.

이 부분을 23번째줄 조건문에서 조건이 만족되면 2중포문을 탈출하게 하는것으로 해결할수 있습니다. 

혹시 2중포문 탈출에대해 모르시겠다면 https://hashcode.co.kr/questio... 참조하세요.

마지막으로 35번째줄에서 for문을 탈출할때 일반적으론 저렇게 숫자를 임의로 바꿔 탈출하는것이 아닌 break를 사용하는것이 일반적입니다.

elisha0103   1년 전

정말감사합니다!

부족한 부분 공부할 수 있게해주시고 코드 중 팁도 주심에 감사합니다!

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