본문 바로가기

기타/it

C언어[배열] 거스름돈,동전의 수 계산하는 프로그램 예제 , 코드소스

반응형

보통 배열부분에서 접하는 문제인데 대부분의 사람들은 이 배열부분에서 짜증난다고 포기해 버리는 경우가  있는데 자세히 알아보면 생각보다

잔돈 계산 프로그램은 굉장히 쉬운 알고리즘이 라는점 ! 

 

문제 ) 거스름돈을 입력받아 가장 적절한 동전의 수를 계산하는 프로그램을 작성하시오

 

 

문제 알고리즘 )  무작정 코딩하기에 앞서 생각을 잘해보자 일단 우리가 활용할수 있는 동전은 

500원, 100원,50원,10원 까지이다 하지만 5원과 1원도 있다는 가정하에 총 6개의 동전 종류가 있다고 생각해보자

 

예를들어 마트에 갔는데 물건값이 2350원이 나왔는데 동전의 수를 가장 적게 쓸려면 어떻게 해야할까?

아마도 가장 큰단위인 500원 짜리를 낼수있는만큼 내고 (4개 =2천원 ) 나머지 금액 300원을 또다시 남은 단위중 가장 큰단위인 100원으로 나누고 

다시 남은 50원을 다음으로 큰 단위인 50원으로 나누어서 계산하는 알고리즘이다 

 

감히 조금 오는가요? 

자 그럼 코드로 한번 천천히 따라가보자

소스 코드 )

#include<stdio.h>

 

main()

{

int coin[6] = { 500,100,50,10,5,1};

int change, i, count[6];

 

printf("거스름 돈을 입력하세요 :");

scanf("%d", &change);

 

for (i = 0; i < 6; i++) {

count[i] = change / coin[i];

change = change % coin[i];

printf("%d원 동전 = %d개\n",coin[i],count[i]);

}

 

}

 

해석 ) 막상 코드를 짜놓고 나면 엄청 짧은 코드에다 우선 동전 종류6개를 저장할 배열을 선언하고 그외 잔돈,동전의 개수, 반복횟수 등에 필요한 변수를 선언한다 여기까지는 정말 기본적인 부분이고 그 이후로 머리를 살짝 굴려야한다 

아직 상장안한 코인 미리 공짜로  긁어 모아서 잭팟 터뜨리는 방법  👇

상장 임박한 [폴체인] 200개 1분만에 받는 방법, 미리 선점해서 대박 노립시다

현재 빗썸 상장찌라시가 돌고있고 아직 대중들에게 많이 알려지지 않은 폴체인 코인 추천해드립니다. 블로그 구독자분들 에게 제가 이전에 추천했던 밀크코인(현재4000원), 메타티움(현재500원)

alltravelworld.tistory.com

 

for문을 머릿속으로 디버깅 해보면 i=0일때 count[0] 에는 잔돈을 coin[1]=500 즉 500으로 나눈값 500원짜리 동전이 몇개가 사용되는지의 값이 저장된다

그리고 그다음줄에는 500원짜리를 사용하고 남은 잔돈의 값을 저장해야하기때문에 change % coin[1]; 예를들어 1300원이 잔돈이면 500원으로 나누고 남은300원이 남는다. 이후로 반복문의 i값이 연속해서 돌아가면 100원짜리로 나누고 남은값을 다시 나누고 1원짜리로 나눌때까지 계속 반복하고 끝이난다 .

 

 

결과창)

거스름 돈을 입력하세요 :1541

500원 동전 = 3개

100원 동전 = 0개

50원 동전 = 0개

10원 동전 = 4개

5원 동전 = 0개

1원 동전 = 1개

 

 

 

 

 

 

반응형