simm4256   7년 전

저번에 질문으로 올렸었는데 못보신 것 같아서 다시 올립니다.

현재 채점에 맞는 정답소스는

a / (b - c) - d = e     (a,b,c,d는 n1~n4 중 하나, e는 n5)

만 성립되는 입력에 대해 처리를 못해 NO! 라고 출력합니다.


예를 들어 입력이

15 16 17 50 9

일 경우

50 / (17 - 15) - 16 = 9

라는 식만 성립합니다. (이 외에 다른 숫자배열, 다른 연산자배열로는 성립 불가능합니다.)

따라서 해당 입력이 들어왔을 경우에

OK! 라고 출력이 나와야 하는데

정답처리된 소스에선 이런 케이스의 입력에 NO! 라고 출력합니다.


즉, 정답을 맞추기 위해선

a / (b - c) - d = e

라는 식은 제외하고 검사해야 합니다.


정확히는

a # ( b # c ) # d = e 

를 계산하면 틀린 코드가, 계산하지 않으면 맞는 코드가 되네요.

(그런데 저런 순서로만 풀리는 연산자의 조합은 앞서 제시한 나누기, 빼기, 빼기 밖에 없습니다.

다른 연산자의 조합일 경우 a~d의 순서를 바꾸면 괄호의 위치를 바꿀 수 있지만, 나누기 빼기 빼기 조합은 a~d의 순서 또는 괄호의 위치를 바꿀 수 없습니다.)

문제를 만들 당시에 가운데에만 괄호가 있어야 풀 수 있는 경우는 없다고 생각하고 해당 케이스는 제외한 채 테스트 케이스를 만들어 둔 것 같네요.

수정 후 재채점이 필요할 듯 싶습니다.


추가로, 한 가지만 더 요청드리자면

문제상에서 "n1~n4의 위치를 바꿔도 된다" 라고 정확히 명시를 해주지 않아서

처음 문제를 접할 때 애로사항이 있습니다.

문제만 봐선 n1~n4의 위치는 고정이고 그 사이의 괄호나 연산자만 바뀔 수 있다고 잘못 해석될 여지가 있어보이네요.

정확한 명시가 추가되었으면 좋겠습니다.

baekjoon   7년 전

추가했습니다.

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