블램의 일상 IT카페

백준 25304번 [영수증] - 풀이 본문

IT/알고리즘 문제 풀이

백준 25304번 [영수증] - 풀이

ble_ram 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' 조건문 이용하면 끝! 

 


Comments