inc24068   4년 전

일단 틀린소스입니다.(채점번호 15778829)

n은 30이하의 숫자라고 해서 a,b,c는 1~3사이에서 움직이기 때문에 당연히 short자료형도 가능할것이라고 생각해서 했는데, 틀렷다더군요.

숫자를 다찍어봣는데도 맞는거같아서, short만 int로 바꿔서(그외 hd도 d로 수정등) 다시 코드를 제출하니 같은 코드인데 맞았다더라구요.(채점번호  15779228)

위에서 말했듯이 a,b,c,cnt,temp 모두 30을 안넘는 숫자이기때문에 short를 쓴다고 해도 오버플로우가 발생하지 않아 int로 쓰는경우랑 결과가 동일해야 하는데, 하나는 틀리고, 하나는 맞았다고 나옵니다. 이상해서 한번 글남겨봅니다.

djm03178   4년 전

첫째 줄에 출력하는 수의 최댓값은 얼마일까요?

jh05013   4년 전

"틀렸습니다" 자체가 "동일하지 않은 결과가 나왔다"라는 뜻이고, 그것은 곧 "동일하지 않을 이유가 있다"는 뜻입니다.

https://www.acmicpc.net/blog/view/55

inc24068   4년 전

djm03178/최댓값은 모두 30이하입니다. 구체적으로 입력받은 숫자인 n이 30까지 입력받는거고, 나머지 출력숫자들은 3이하입니다.

jh05013/코드 보시면 아시겠지만, 동일하지 않을 이유가 없습니다.

자료형만 다른데 같은 결과가 나왔다는 거는 어디선가 오버플로우가 발생했다는 이유겠지요. 그럼 문제에서 입력값이 잘못된 자료형일 확률 밖에 없겠네요.

jh05013   4년 전

첫째 줄에 옮긴 횟수 K를 출력하라고 했습니다. 그 값이 정말로 30 이하라고 생각하시나요?

inc24068   4년 전

다른 컴파일러 두세개를 돌려본 결과 30이하의 입력값에 대해서는 정확히 동일한 결과가 출력됐습니다.

inc24068   4년 전

흠 k를 생각을 못했군요. 감사합니다 jh05013님 다시생각해보겠습니다.

inc24068   4년 전

그부분만 바꿔서 했더니 되네요. 제가 생각이 짧았습니다. 감사드립니다.

bc5218   4년 전

djm03178 님 jh05013 님 감사합니다. 도움이 많이 됐습니다. 지려서 화장실 다녀올뻔 ㄷㄷ

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