1541번 - 잃어버린 괄호
세준이는 양수와 +,-,그리고 괄호를 가지고 길이가 최대 50인 식을 만든 후 괄호를 모두 지웠다고 문제에 나와 있습니다.
이 내용에 따르면 주어질 문자열의 길이는 51을 넘지 않을 것이라고 생각이 됩니다.
http://boj.kr/4a253ace57b9475d... 에서 길이가 51인 char 배열로 입력을 받았을 땐 틀렸다고 나오지만,
http://boj.kr/6e9364fcba1a44e0... 에서 string으로 입력을 받았을 땐 맞았다고 나옵니다.
제 생각에는 입력으로 주어진 문자열의 길이가 51이 넘어서 일부가 잘려 처리되어 오답이 나온 것 같습니다.
길이가 최대 50이라는 표현이 수정되어야 하지 않을까요?
첫 번째 프로그램의 17번째 줄에서 시작하는 반복문은 문자열의 실제 길이와 관련없이 무조건 51번 실행합니다.
즉, 문자열의 뒤에 있는 쓰레기값도 반복문을 돌게 됩니다.
이런 조건을 확인할 때에는 assert 구문을 사용하시는 것이 훨씬 확실합니다.
range-based for 구문에서 문자열을 돌릴 때 널문자가 나오면 반복을 종료하는 줄 알았는데 몰랐네요.
다음부턴 assert 구문으로 확실히 확인해보겠습니다.
답변 모두 감사합니다.
댓글을 작성하려면 로그인해야 합니다.
qmamsm123 3년 전
세준이는 양수와 +,-,그리고 괄호를 가지고 길이가 최대 50인 식을 만든 후 괄호를 모두 지웠다고 문제에 나와 있습니다.
이 내용에 따르면 주어질 문자열의 길이는 51을 넘지 않을 것이라고 생각이 됩니다.
http://boj.kr/4a253ace57b9475d... 에서 길이가 51인 char 배열로 입력을 받았을 땐 틀렸다고 나오지만,
http://boj.kr/6e9364fcba1a44e0... 에서 string으로 입력을 받았을 땐 맞았다고 나옵니다.
제 생각에는 입력으로 주어진 문자열의 길이가 51이 넘어서 일부가 잘려 처리되어 오답이 나온 것 같습니다.
길이가 최대 50이라는 표현이 수정되어야 하지 않을까요?