반응형
풀이
일단 출력할 수 없는 경우 먼저 생각하자.
사고의 순서를 써보자
1.가장 봉지수가 적은 경우를 찾아야 한다.
2.그러기 위해서는 가능한 5kg 봉투를 많이 사용해야 한다.
3.그렇다면 3kg 봉투는 최소로 사용해야 한다.
4.그렇다면 3kg 봉투는 5kg으로 나누어떨어지지 않을때 5kg로 나누어 떨어지게 만드는 용도로만 사용한다.
이걸 알고리즘으로 바꿔서 생각해보자
1. 우선 현재 무게가 5로 나누어 떨어지는 지 확인하고 그렇지 않으면 3kg를 챙긴다.
2. 무게가 5로 나누어 떨어지게 되었으면 그때부터는 모두 5kg을 가져가면 된다.
3. 빼는 과정에서 무게가 음수가 발생하면 -1을 출력한다.
해답 코드
#include<stdio.h>
#include<math.h>
int main(void){
int x=1;
int count=0;
scanf("%d",&x);
while(x%5!=0){
x-=3;
count++;
}
if(x<0){
printf("-1");
return 0;
}
count += x/5;
printf("%d",count);
return 0;
}
해맸던 부분
printf("%d",variable);//correct
printf("%d",&variable);//error
scanf("%d",variable);//error
scanf("%d",&variable);//correct
printf문에는 변수에 &가 붙지 않고
scanf문에는 &가 붙어야 한다.
오랜만에 c++ 하니까 헷갈린다...
반응형
'algorithm > dp' 카테고리의 다른 글
[백준] 2579번: 계단 오르기 풀이 및 해설(C++) (0) | 2023.06.09 |
---|---|
[백준] 1904번: 01타일 풀이 및 해설(C++) (0) | 2023.06.08 |
[백준] 1463번: 1로 만들기 문제제목 풀이 및 해설(C++) (0) | 2023.06.08 |
[백준] 1010번: 다리놓기 풀이 및 해설(C++) (0) | 2023.06.07 |
[백준] 2775번: 부녀회장이 될테야 풀이 및 해설(C++) (0) | 2023.06.07 |