티스토리 뷰

반응형

www.acmicpc.net/problem/5585

 

5585번: 거스름돈

타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사

www.acmicpc.net


⊙ 문제

⊙ 입력

⊙ 출력

⊙ 예제 입출력

⊙ 알고리즘 분류

  • 그리디 알고리즘

 


 

⊙ 문제 접근 과정

 

문제를 보고 제일 먼저 잔돈을 배열로 정리했다. 그다음 무한 루프 문을 만들고 배열 인덱스를 활용하여 count를 올려주고 break를 통해 탈출하는 반복문 코드를 짰다. 

 

  1. 배열을 이용하여 잔돈 정리
  2. count 값 초기화
  3. index를 활용해 입력받은 값 비교
  4. 입력받은 값이 더 크면 잔돈을 빼고 count up
  5. 아니면 break
  6. 마지막으로 count 출력

 

⊙ 문제 풀이

 

#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> yen = {500,100,50,10,5,1};
    int pay,count=0;
    cin >> pay;
    pay = 1000-pay;

    for(int i =0 ; i<6; i++) {
        for(;;) {
            if(pay>=yen[i]) {
                pay-=yen[i];
                count++;
            }else break;
        }
    }
    cout<<count;
}

⊙ 결과

 


 

 

⊙ 마무리

 

 

NONE

 

 

좋아요로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함