nahwasa   2년 전

곱해진 수의 최대치가 정해져 있지 않아 double로 정수부 표현이 불가할 것 같았는데, double로도 풀어보니 AC네요.

이하 데이터는 9.9가 10000개 있는 데이터 입니다. double로 푼 경우는 WA로 뜰 것 같습니다. 

new.in

new.out

djm03178   2년 전

이 문제를 실수형으로 풀면 오차가 크게 생길 수밖에 없습니다. 그러나 정황상 이 문제는 이와 같이 "대충" 실수형으로 구현해서 푸는 것이 정해였을 것으로 추측됩니다. 이 문제에 대한 논의는 이전에도 몇 차례 진행된 바가 있는데 (게시판은 아닙니다), 그냥 강한 데이터를 추가하지 않고 이대로 두는 것이 더 나을 것 같다고 잠정적인 결론을 내렸던 것으로 기억합니다.

nahwasa   2년 전

확실히 몇개의 코드를 봤는데 제가 본 코드들은 전부 double로 처리했더라구요. 저런 데이터를 추가하면 오답률이 엄청나게 올라갈 것 같긴해요. 그리고 사실 문제를 푸는 로직과 크게 상관 없기도 해서, 차라리 문제 지문에 '결과값은 double로 표현 가능한 수이다.' 정도만 추가해도 좋을 것 같아요.

djm03178   2년 전

결과값을 보장하는 것만으로는 좀 부족합니다. 중간 계산 과정에서의 오차만으로도 얼마든지 double을 틀리게 만드는 것이 가능할 것입니다. 이 문제의 지문을 엄밀하게 해서 구제하는 건 좀 힘들어 보이고, 차라리 지금처럼 모호하게 두는 편이 오히려 나을 것 같습니다.

nahwasa   2년 전

모호하긴 하네요. 그럼 계산 중간과정 및 결과값은 double로 연산하기 충분하다. 정도면 안될라나요 ㅋㅋ

예를들어 c로 짜실분이 9.9^10000을 보고 큰 실수 연산하는 부분을 직접 짜시면 그분 시간낭비가 많을 것 같아요!

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