[코딩테스트C++] 동전0

후이재·2020년 10월 12일
1

오늘의 문제

https://www.acmicpc.net/problem/11047

동전0

나의 풀이

int solution(int k, vector<int> a){
    int answer =0;
    int i = 0;
    while(k != 0){
        int value = a[a.size()-1-i];
        if(k / value != 0){
            answer += k / value;
            k = k%value;
        }
        i++;
    }
    
    return answer;
}

풀이 법

  • 동전거슬러주기랑 비슷한점이 있으나 1이 항상 포함되어있어 실패할 일이 없다는것이 다르다.
  • 제일 큰 수부터 나눠지는지 비교를 하고 값이 0이 될때까지 반복한다.

모범 답안

#include <stdio.h>
int n, m, a[12], i, cnt;
main()
{
	scanf("%d %d", &n, &m);
	for(i=0; i<n; i++)
	scanf("%d", a+i);
	for(i=n-1; i>=0; i--)
	{
		cnt+=m/a[i];
		m%=a[i];
	}
	printf("%d", cnt);
}

배울 점

  • 입출력까지 신경써야하는거 백준 귀찮
profile
공부를 위한 벨로그

0개의 댓글