IT/알고리즘 문제 풀이
백준 25304번 [영수증] - 풀이
푸른고양이06
2022. 11. 18. 15:28
문제.
풀이.
#include <stdio.h>
int main() {
int x,n,a,b,mul=0;
scanf("%d\n%d",&x,&n);
for(int i=1; i<=n; i++){
scanf("%d %d",&a,&b);
mul += a*b;
}
if(mul==x){
printf("Yes");
}
else{
printf("No");
}
return 0;
}
:
1. 총금액 x
2. 물건 종류 수 n
3. 물건의 가격 a
4. 물건의 개수 b
5. 변수 mul = a*b
이 코드에서 중요하게 볼 점은 '+=' 할당연산자 이다.
난 이코드를 한참을 생각했다.
그 이유가 반복문이 계속 돌아가서 mul = a*b를 해도 반복이 될때마다
들어온 값들이 초기화 되기 때문이다.
하지만 += 를 사용하고 변수 mul에 0으로 초기화 시켜줘서
구구단 만들때처럼 응용하면 된다.
그럼 mul = 0값에 a*b가 들어오고,
첫번째 a*b가 들어있는 mul에 두번째 a*b가 더해진다. 이게 총 반복횟수만큼 더해진다.
그 후 반복문이 끝나면 변수 mul에는 반봇횟수만큼의 a*b값이 더해져 들어가 있고,
그 값(mul)이 총액 x와 같으면 'Yes', 아니면 'No' 조건문 이용하면 끝!