<기사 - 알고리즘 : 100% 문제 복원> : 다른 게시판에 잘못 올렸네요..-.-;;; |
|
개인별로 지급할 출장비에 대해 필요한 화폐의 매수를 계산하여 출력하고자 한다. |
제시된 <처리조건>을 <답항보기>에서 선택하여 답안지의 해당 번호 (1)~(5)에 각각 마크하시오. |
|
<처리조건> |
-화폐는 고액권을 우선으로 하고, 나머지 금액을 그 다음 단위의 화폐 순서로 지급한다. |
-화폐단위는 10000원,5000원,1000원,500원,100원,50원,10원,5원,1원의 9가지 종류가 있다 |
-입력 데이터는 성명과 출장비 지급액이며, 성명의 입력이 'QUIT'이면 입력의 끝이다. |
-출력은 성명, 출장비 지급액, 개인별 각 화폐매수로 하며, 마지막에 전체 화폐 매수를 출력한다.(※아래의 [출력양식]참조) |
-본문제에서 "/" 연산자는 나누기 연산의 몫을 구하는 연산자로 정의한다. |
즉, 나누기 연산을 행하여 소수점 이하 발생시는 소수점 이하는 버림으로 처리한다. |
예를 들어, 8/4의 경우 결과값은 2이고, 5/2의 경우 결과값은 2이며, 3/5의 경우 결과값은 0이다. |
-사용하는 변수는 다음과 같다. |
|
PM(9) : 개인별로 지급되는 출장비 지급액에 대한 화폐단위별 매수를 기억하는 배열로 PM(1)에는 |
10000원의 매수, PM(2)에는 5000원의 매수, PM(3)에는 1000원의 매수,…,PM(9)에는 1원의 매수 순으로 저장된다. |
TM(9) : 각 화폐 단위별 전체 화폐매수를 기억하는 배열로 TM(1)에는 10000원의 매수, TM(2)에는 5000원의 매수, |
TM(3)에는 1000원의 매수,…,TM(9)에는 1원의 매수 순으로 저장한다. |
N : 성명을 기억하는 변수 |
P : 개인별로 지급되는 출장비지급액을 기억하는 변수 |
T : 화폐 단위별로 화폐매수를 계산할 금액(남은금액)을 기억하는 변수 |
M : 화폐 단위를 기억할 변수 |
SW : 화폐 단위 구분을 위한 변수로서 화폐단위가 10000원,1000원,100원,10원,1원인지, |
5000원, 500원,50원,5원인지를 구분하기 위한 변수로 0 또는 1 을 가진다. |
K : 화폐 매수를 계산하거나 출력할 떄 사용할 배열의 첨자. |
|
- 배열의 크기가 n일 경우 배열의 요소는 1부터 n까지 구성되는 것으로 한다. |
|
예를 들어, A 라는 배열의 크기가 10일 경우 A(10)으로 표시되고, |
배열 요소는 A(1) 부터 A(10)으로 구현된다고 가정한다. |
|
- <그림>의 순서도에서 마름모의 의미는 마름모 안의 조건에 따라 조건을 만족하면 "Yes"로, |
만족하지 않으면 "No"로 순서도의 흐름이 분기되도록 하는 역할을 한다. |
|
- 반복문 설명 |
예를 들어 변수 a에 대해서 "반복 a=1,50,1" 의 의미는 a의 초기값 1, 최종값 50, 증가치 1로써, |
즉, a의 값이 1부터 50까지 1씩 증가하면서 해당 반복문 내의 로직을 수행함을 나타낸다. |
|
- 프로그램 실행 예시는 다음과 같다. |
|
<입력> |
엄철식 539620 |
양동수 538973 |
이동훈 173105 |
QUIT |
|
<출력> |
(※ 출력시 제목 부분은 다음 [출력 양식]과 같이 1,2 라인의 밑줄 부분이며 소제목은 6라인의 밑줄 부분을 의미한다.) |
|
[출력 양식] |