a와 b값을 서로 바꾼 케이스는 reserved = true로 기록하신 것 같은데
다음 케이스에서는 안바꿀 수도 있으므로 케이스가 시작할때 마다 reserved = false로 초기화 시켜야 합니다.
2
3 2 8
2 1
2 3 8
2 1
7481번 - ATM놀이
알고리즘을 보면
입력받은 두 지폐 a ,b 중 금액이 작은 지폐를 a로, 큰 지폐를 b로 바꾼 상태에서
max_nb = S / b; 여기서 max_nb는 큰 지폐 b로 지불할 수 있는 최대 개수.
nb(지폐 b의 개수)는 0 ~ max_nb의 범위를 갖겠네요. 개수를 구하는 것이니 최소가 0이겠죠...
그러니 for문은 nb값이 max_nb로 시작해서 0이 될때까지 돌아야 합니다. 변수 k가 그 역할을 하구요..
a는 개수가 아닌 금액인데 k <= a 까지 for문을 돌리면 nb가 음수인 상태에서 답을 구할 수도 있습니다.
nb가 음수이면 답이 없는건데..노답노답.. 내 설명도 노답..ㅠㅠ
'for(int k=0; k <= a; k++)'로 해놓고
1
3 20 4 해보세요.
8 -1
댓글을 작성하려면 로그인해야 합니다.
nersery 7년 전
흠, 나머지를 이용해서 풀려고 했는데 아래 코드에서 어떤것이 잘못된 걸까요?