if((cal + array[i])/(ans2+toppay) >= ans) // 만약 토핑1개를 추가했을때의 1원당 열량이 이전ans값 보다 크다면. (array.Sort 와 Reverse를 통해 내림차순 정렬을 해 두었습니다) ------------- 문제의 = 부분입니다. >=로 하면 맞고 >로 하면 틀리는..
{
ans2 = ans2 + toppay;
cal = cal + array[i];
ans = cal/ans2;
}
else
{
break;
}
}
여기서 저 =부분을 뺴면 틀렸습니다가 나오고 포함하면 맞았습니다가 나옵니다.
여기서 궁금한것은 토핑을 추가했을때의 1원당 열량값이 그 전에 값과 "동일"하다면 break 후 그 전 열량값을 출력하더라도 답이 똑같다고 생각하는데 왜 틀렸는지 입니다.
토핑의 각 열량을 내림차순 정렬을 해 두었기에 토핑추가전과 후가 열량이 같다면 여기서 다른토핑을 더 추가한다 하더라도 1원당 열량이 내려가면 내려갔지 올라가진 않을텐데 말이죠..
yarn33 2년 전
전체코드가 아니라 이 부분만 봐주시면 될 것 같습니다.
int ans2 = dpay; // 도우의 가격
int cal = dobcal; // 도우의 칼로리
int ans = cal/ans2; // 토핑x일때 1원당 열량
for(int i=0; i<n; i++)
{
if((cal + array[i])/(ans2+toppay) >= ans) // 만약 토핑1개를 추가했을때의 1원당 열량이 이전ans값 보다 크다면. (array.Sort 와 Reverse를 통해 내림차순 정렬을 해 두었습니다) ------------- 문제의 = 부분입니다. >=로 하면 맞고 >로 하면 틀리는..
{
ans2 = ans2 + toppay;
cal = cal + array[i];
ans = cal/ans2;
}
else
{
break;
}
}
여기서 저 =부분을 뺴면 틀렸습니다가 나오고 포함하면 맞았습니다가 나옵니다.
여기서 궁금한것은 토핑을 추가했을때의 1원당 열량값이 그 전에 값과 "동일"하다면 break 후 그 전 열량값을 출력하더라도 답이 똑같다고 생각하는데 왜 틀렸는지 입니다.
토핑의 각 열량을 내림차순 정렬을 해 두었기에 토핑추가전과 후가 열량이 같다면 여기서 다른토핑을 더 추가한다 하더라도 1원당 열량이 내려가면 내려갔지 올라가진 않을텐데 말이죠..