oin0107   8년 전

샘플 테스트케이스랑 제가 만든 테스트케이스로는 다 정상적으로 나옵니다.

유사 질문글들 검색해봤지만 그 글에 나온 문제점은 제 소스코드에 해당하지 않았습니다.

혹시 N이 1일때 (0) 또는 (1) 이런식으로 나와야하나 싶어서 수정해봤지만 이것도 아닌 것 같습니다.

도움 부탁드립니다.

                       

namnamseo   8년 전

1) N이 2 이상이고 모든 숫자가 같을 때의 경우 0 또는 1이 출력되어야 하는데 바로 LU를 호출하셔서, 이 경우의 처리가 불가능합니다.
2) Result 배열의 크기가 너무 작습니다. 0과 1이 반복되는 최악의 경우 500자를 훌쩍 넘어갑니다.

이 두 가지가 문제였던 것 같네요.
몇 가지 제안을 드리자면

1) LU, RU, LD, RD 모두 결국은 똑같은 일을 하는 함수이기 때문에, 밑의 소스처럼 함수를 통일하고, 4개로 쪼개야 할때만 쪼개도록 처리해주시면 훨씬 간단합니다.

2) Result 배열의 내용을 어차피 순서대로 출력할 것이기 때문에, 그때그때 cout<<'0';,cout<<'('; 처럼 처리하셔도 상관이 없습니다. 그렇게 하면 Result 배열의 크기를 미리 생각할 필요가 없습니다.

제가 소스에서 고친 부분을 첨부합니다.

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