19939번 - 박 터뜨리기
m 개를 각각 다른수로 더해서 n 을 만드는 경우일때 m번째 a 와 첫번째 a 의 차이가 최소인것을 고르는거니까
sum 에 첫번째부터 m-1 개의 합을 구해줬습니다.
그 다음 sum 을 m-1 씩 더해가며 마지막 m자리에 올 수를 구하고 이것이 m-1 번째 것보다 크다면 계속 갱신해주는 방향으로 짰는데
도저희 오류가보이지않습니다... 무슨오류가 발생될까요?
반례:
100000 100
사실 n>=m*(m+1)/2면 답이 m또는 m-1입니다. 잘 생각해 보세요
잘 이해가지않습니다 ㅠ 혹시 100000 100 답이 뭐가 나와야하나요..?
당연히 100이 아닌가요?
6 3->123
7 3->124
8 3->134
9 3->234
10 3->235
11 3->245
12 3->345
....
이런 규칙들을 잘 살펴보면 답을 유추하기 쉽습니다.
로직 자체를 잘못생각하고 짜고있었네요.. 감사합니다 해결했습니다.
댓글을 작성하려면 로그인해야 합니다.
qktlf789456 3년 전
m 개를 각각 다른수로 더해서 n 을 만드는 경우일때 m번째 a 와 첫번째 a 의 차이가 최소인것을 고르는거니까
sum 에 첫번째부터 m-1 개의 합을 구해줬습니다.
그 다음 sum 을 m-1 씩 더해가며 마지막 m자리에 올 수를 구하고 이것이 m-1 번째 것보다 크다면 계속 갱신해주는 방향으로 짰는데
도저희 오류가보이지않습니다... 무슨오류가 발생될까요?