mrcamel   2년 전

https://www.acmicpc.net/coding/status/view/20027

http://ideone.com/ZiHsjE

본인 컴에서도 ideone 결과처럼 답이 없을 경우와 있는 경우 둘다 출력합니다

그런데 여기 코딩에서는 답이 있을 경우 출력되지 않는것 같네요..

컴파일러 문제 일까요?

pichulia   2년 전

trace 배열에는 답을 1번 인덱스부터 집어넣고있는데

출력할 땐 0번부터 출력하네요

제 컴퓨터에서 답 앞에 띄어쓰기가 되서 나오길래

뭔가 이상하다 싶었는데... 이런 문제가ㅋㅋㅋ

이 경우는 Ideone이 이상한거네요ㅋㅋㅋㅋㅋㅋㅋㅋ

https://www.acmicpc.net/coding/status/view/20037

여기 보시면 알겠지만, 0번째 인덱스에는 end of string을 나타내는 0 이 들어있습니다.

이때문에 cout에서 출력할 때 문자열이 이미 끝난줄 알고 더이상 출력을 안했나봐요.

(....그럼 cout >> endl; 은 왜 출력이 안됐느냐..는 잘 모르겠지만)

암튼 REP(i, 1, cnt) cout << trace[i]; 로 바꿔보세요

pichulia   2년 전

죄송... REP(i, 1, cnt-1) 인듯... 

cnt-1이 아니라 cnt까지하니까 틀리네요ㅋㅋㅋㅋ

pichulia   2년 전

제 생각입니다만.... 코딩에서는

stdout에 출력한 내용을 gets();나 뭐 암튼 줄 단위로 읽고

그걸 출력하는 방식일거같은데...

(출력 내용이 너무 많으면 출력초과를 내기 위해서)

저 코드, gets();로 읽은 가장 첫 문자가 end of string 이라서

출력할 때 아무것도 출력 안하고 끝낸듯 합니다.

그게 이 현상을 설명하는 가장 최고의 시나리오인듯 하네요.....

mrcamel   2년 전

더러운 코드 봐주시면서 분석까지 해주신 갓출리아님 감사합니다!

더럽게 코딩하다보니 생각못했네요 ㅋㅋ

다음부턴 좀 깔끔하게 해야할듯 ㅠ

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