adfsfsf   5년 전

k개의 수의 표준편차가 가장 적을 때 곱이 가장 크게 나옵니다. 그에 따라 가능한 케이스는 3가지입니다.

  1. (k-1)개의 (s/k)와 1개의 (s/k)+(s%k)로 이뤄진 경우
  2. (k-1)개의 (s/k)-1 과 1개의 s-((s/k)-1)*(k-1)로 이뤄진 경우
  3. (k-1)개의 (s/k)+1 과 1개의 s-((s/k)+1)*(k-1)로 이뤄진 경우

위 세 경우 중 하나가 정답이 될 것이며, 3번 같은 경우 음의 값이 들어간다고 해도 1개이기 때문에 음의 값이 결과로 나와서 자동 배제됩니다. 그리고, 해당 아이디어에 따라 적은 것이 아래의 코드입니다. 오류가 있다면 알고 싶습니다.

adfsfsf   5년 전

오류가 나는 케이스를 찾았습니다.

20 16 같은 경우, 1 14개 3 2개로 9가 가능하네요. 만약 S가 20보다 작거나 같으면 생기는 것 같습니다.

구체적으로는 s/k가 1인 경우 생기는 문제인 것 같습니다.

adfsfsf   5년 전

지금 다시 해 보니 20 16은 1 12개, 2 4개로 16을 만드는 게 최선입니다.

adfsfsf   5년 전

재귀함수를 이용해서 수정하였고, 위에 적은 형태의 예제도 올바르게 나옵니다. 그럼에도 틀렸다고 나옵니다...

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