landsknecht   4년 전

c로 작성해 봤습니다. 문제에서 주어진 testCaseNumber->testCase->testCase->testCase...의 입력을  testCaseNumber \n testCase \n tesCase \n으로 해석하고 짰습니다.

문제나 질문들에 제시된 반례도 체크해 봤습니다.

3b445403-0702-4350-bf21-a27475a29a141d60eb5e-1786-44b4-8284-bdb550bbbc6b

dyk777   4년 전

https://www.acmicpc.net/board/view/24691

3페이지에 있는 글에서 리다이렉트 되는 글입니다.

및, 40번 줄에서 '\0'을 출력하고 있으므로 항상 틀립니다.

landsknecht   4년 전

40번째 줄은 오타였습니다;;(수정하겠습니다.)
두번째 문장은 무엇을 말씀하시는 건지 잘 모르겠습니다;;

dyk777   4년 전

만약 정말로 게시판에 있는 반례들을 전부 다 테스트 할 심산이었다면,

이 문제에 대한 질문게시판 3페이지에 있는 눈에 띄는 글을 놓치지 않았을 것으로 생각됩니다.

심지어 글 내에도 굵게 강조가 되어 있습니다.

landsknecht   4년 전

이전에 제출 했던 코드에서 해당 부분 체크하던 부분을 누락했습니다. 해당 이전 코드에서는 do-while문에서 push하는 도중에 balance가 0미만으로 내려가면 break 되도록 코드를 짰었는데 이때 오답이 되었던 것은 break로 나머지 부분을 안받기 때문일까요? 자꾸 귀찮게 해드려서 죄송합니다.

dyk777   4년 전

네. do-while 문 안에서 한 문자씩 받고 있기 때문에, break를 걸어 받지 않으면 남은 것들이 다음 테스트 케이스에 받아질 것이므로 영향을 줄 수 밖에 없습니다.

즉, do-while문은 모두 수행하되 상태가 NO가 됐음을 기억하고 있거나, 혹은

문자열을 미리 받아두고 검사할 때만 do-while문을 이용할 수 있겠습니다.

landsknecht   4년 전

감사합니다! 덕분에 해결되었습니다. 말씀해주신대로 break와 코드를 바꾸면서 반례를 전부 다시 체크하지 않은 것이 잘못이었습니다.

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