temp   7년 전

먼저 저는 이 문제의 정답을 맞지 못하였습니다. 구글링을 통해 정답자의 소스로 정답이 나온것이며, 저는 이 정답이 틀렸다고 생각하였습니다.

먼저 제가 생각한 인풋은 다음과 같습니다.

50 17 15 16 9

위 5가지 숫자가 들어왔을때 만약 / - - 와 괄호를 사용한다면

50 / (17-15) -16 = 9 

이렇게 나올텐데요...그럼 OK가 나와야 하는것 아닌가요? 왜 이게 정답소스에서는 NO라고 하는걸까요? 

제가 문제를 잘못 이해하고 있는것인지 모르겠습니다. 아무리 고쳐도 정답이 나오지 않아 글을 적습니다.

temp   7년 전

같은 규칙으로
30 4 2 5 10

이수를 사용하면 정답소스에서는 ok를 주고있습니다. 

물론 제 소스도 ok를 줍니다. 하지만 같은 규칙인데 본문의 수들은 no를 주고 여기서는 ok를 준다는게
이건 뭔가 이상하다고 생각합니다.

simm4256   7년 전

문제를 푸는 중인데 참...

문제에 반드시 필요한 설명들이 빠진 게 많아보이네요

n1~n4의 순서를 바꿔도 되느냐에 대한 설명도 없고

괄호를 연산자로 취급하는것처럼 말하더니 정답소스에선 괄호는 따로취급하고..


푸는중이라 뭐라고 말씀드릴 순 없는데

두 번째 예를 드신

30 4 2 5 10

의 경우


30 / 4 * 2 - 5 = 10

으로 괄호없이 OK처리가 되는 예제이긴 합니다.


근데 정답소스코드에서

5 2 3 5 125를 OK처리하는걸로 봐선

5 * (2 + 3) * 5 = 125

라고 본 것 같은데

질문자님의 첫번 째 예제와 같은 위치의 괄호인데.. 어째서 NO라고 출력되는지는 잘 모르겠네요

temp   7년 전

문제가 많이 애매모호하다고 생각합니다.

특정 경우에 대해서는 허락하고 안하고 이러는것같다는 생각입니다..

simm4256   7년 전

일단 정답소스에선

a # ( b # c) # d

에 대한 처리를 안해줬네요.

근데 저 경우로만 풀어야 하는 연산은

예로 드신

a / (b - c) - d

밖에 없습니다.

이 외의 다른 연산자가 들어갈 경우 a~d의 순서를 바꿔 다른 모양의 괄호가 나오도록 할 수가 있네요.


제가 볼땐 테스트케이스에 저런 식이 없는 것 같습니다.

한번 본인 소스에서 저 경우만 제외하고 제출했을 때 어떻게 뜨는지 해봐주시면 안될까요?

temp   7년 전

저 경우를 제외하니 틀렸다고 나오네요.

simm4256   7년 전

혹시 소스 볼 수 있을까요?

temp   7년 전

소스는 다음과 같습니다.

simm4256   7년 전

질문자님 소스 맞았습니다.


그 경우 제외하실 때 주석처리만 하시면

temp[1] = 0으로 기본값이 남기 때문에

답이 0이 될 수 없는 테스트 케이스인데  temp[1]=0이라 chk(temp)에서 ans=1이되는 경우가 발생하더군요


그래서 아예 temp 배열 크기를 6으로하고 해봤더니 정답이라고 뜨네요


결론은, 현재 테스트케이스에선 a / (b - c) - d = e 로만 답이 나오는 입력이 없다는거네요.

simm4256   7년 전

아, 테스트케이스 추가해달라고 게시판에 글 하나 올렸습니다.

temp   7년 전

아.. 답이 0이될거라고는 깊게 생각안해봤었네요 ㅎㅎ


어쩐지..수많은 경우를 돌려봐도 분명 틀릴게없다고 생각했고, 정답소스가 뭔가 이상하다고 생각하고있었습니다.

아무쪼록 테스트케이스 허점을 찾아내신 집념이 대단하신하시네요 ㅎㅎ

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