14889번 - 스타트와 링크
계속 틀리다가 처음부터 다른 방식으로 풀어서 결국에는 풀었는데요
틀렸던게 왜 틀렸는지 모르겠다가 49번째 줄
if(*real >= (fact(n)/(fact(n/2)*fact(n/2)))/2 ) return;
이것만 지우니까 틀렸다고 떴던게 맞았다고 하네요
그런데 제 생각에 저 문장이 왜 문제인지 모르겠어서요
조합알고리즘(?)에서 N개 중에서 N/2개를 뽑을 때 집합이 두개니까 한쪽 집합만 구하면 나머지는 자동으로 구해지니까
전체의 절반만 구하려고 저렇게 쓴건데 뭐가 문제죠 ㅠㅠ 디버깅(?)을계속 해봤는데도 모르겠어서요
프로그래밍 할때 쓰는 단어가 아직 많이 미숙하네요 알려주시면 감사하겠습니다
N의 최댓값이 20인데, fact(20)을 호출하시면 정수 범위를 넘어가서 이상한 마이너스값을 리턴하게 됩니다.
즉, 멈추면 안 되는데 멈추게 되는 상황이 발생할 수 있습니다.
댓글을 작성하려면 로그인해야 합니다.
pastpot 3년 전
계속 틀리다가 처음부터 다른 방식으로 풀어서 결국에는 풀었는데요
틀렸던게 왜 틀렸는지 모르겠다가 49번째 줄
if(*real >= (fact(n)/(fact(n/2)*fact(n/2)))/2 ) return;
이것만 지우니까 틀렸다고 떴던게 맞았다고 하네요
그런데 제 생각에 저 문장이 왜 문제인지 모르겠어서요
조합알고리즘(?)에서 N개 중에서 N/2개를 뽑을 때 집합이 두개니까 한쪽 집합만 구하면 나머지는 자동으로 구해지니까
전체의 절반만 구하려고 저렇게 쓴건데 뭐가 문제죠 ㅠㅠ 디버깅(?)을계속 해봤는데도 모르겠어서요
프로그래밍 할때 쓰는 단어가 아직 많이 미숙하네요 알려주시면 감사하겠습니다