jow1025   5년 전

첫번쨰 공백+단어일때

1

공백+엔터일때

0

마지막 공백일때

0

그 이외 경우들 잘 돌아가는데 어떤 반례때문인지 잘 모르겠네요

jow1025   5년 전

좀 찝찝한게있다면 만약 엔터키만 입력받았을때 15행,19행이 겹치지않을까의문인데

이미 두 라인에서 상쇄돼서 0이 나오는데. 아마도 다른문제인것같은데 어떤게문제인지..

seico75   5년 전

마지막에 엔터 없이 

"abc def" 

이런식으로 주어지면 하나씩 적게 나오는 것 같습니다.

seico75   5년 전

https://ideone.com/wx39Qi

djm03178   5년 전

개행 문자는 끝에 들어오는 것이 원칙이기 때문에 이 문제의 데이터에는 항상 존재합니다.

그런데 틀린 이유는 그와 같은 이유입니다. 길이가 100만자인 문자열이 입력으로 들어오게 되면 fgets 함수가 마지막에 널 문자를 넣기 위해 100만1번째 문자인 개행 문자를 생략하고 그 자리에 널 문자를 넣기 때문입니다.

그래서 arr의 크기만 1000002로 늘려주면 맞습니다.

jow1025   5년 전

감사합니다. 책에서 gets보단 fgets를사용하라고해서 사용해봤는데 여전히 fgets사용이 손에익은것같지않네요..

계속 비슷한예제를풀어봐야겠습니다.

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