1번 답이 J != 0이 될 수 없나요?
마지막 계산 다하고 나면 J = 0 i = 0.5가 되는데
답이 i>1 일 경우 i는 0.5니까 NO가 성립되서 종료되고
J != 0 경우에도 NO가 되서 종료 되지 않나요? 돈이 - 일리도 없고 헷갈리네요
2018년 정보처리기사 1회 실기 문제중에 5번 스택문제에 4번답이 top- 인데 -top과 차이가 있나요?
안녕하세요.
1)
i는 50000으로 초기화됩니다.
SW는 0으로 초기화됩니다.
J에 화폐매수를 계산할 금액을 입력받습니다.
반복적으로 처리가 되는 구간의 시작입니다.
[50000]원에 대한 화폐 매수를 계산하고
i, K 즉 50000원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 0이므로
50000을 5로 나눈 10000을 i에 저장합니다.
SW에 1을 저장합니다.
[10000]원에 대한 화폐 매수를 계산하고
i, K 즉 10000원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 1이므로
10000을 2로 나눈 5000을 i에 저장합니다.
SW에 0을 저장합니다.
[5000]원에 대한 화폐 매수를 계산하고
i, K 즉 5000원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 0이므로
5000을 5로 나눈 1000을 i에 저장합니다.
SW에 1을 저장합니다.
[1000]원에 대한 화폐 매수를 계산하고
i, K 즉 1000원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 1이므로
1000을 2로 나눈 500을 i에 저장합니다.
SW에 0을 저장합니다.
[500]원에 대한 화폐 매수를 계산하고
i, K 즉 500원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 0이므로
500을 5로 나눈 100을 i에 저장합니다.
SW에 1을 저장합니다.
[100]원에 대한 화폐 매수를 계산하고
i, K 즉 100원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 1이므로
100을 2로 나눈 50을 i에 저장합니다.
SW에 0을 저장합니다.
[50]원에 대한 화폐 매수를 계산하고
i, K 즉 50원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 0이므로
50을 5로 나눈 10을 i에 저장합니다.
SW에 1을 저장합니다.
[10]원에 대한 화폐 매수를 계산하고
i, K 즉 10원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 1이므로
10을 2로 나눈 5를 i에 저장합니다.
SW에 0을 저장합니다.
[5]원에 대한 화폐 매수를 계산하고
i, K 즉 5원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 0이므로
5을 5로 나눈 1을 i에 저장합니다.
SW에 1을 저장합니다.
[1]원에 대한 화폐 매수를 계산하고
i, K 즉 1원 화폐 단위와 매수를 출력합니다.
i>1이 No이므로
종료합니다.
결국 i는 0.5까지 진행하지 않고 1인 상태에서 종료가 되게 됩니다.
2)
return stack[top--];
는 stack 배열의 현재 top 위치의 값을 반환한 후 top의 값을 1 감소하는데
return stack[--top];
는 stack 배열의 현재 top에서 우선 1을 감소한 위치의 값을 반환합니다.
그러므로 다른 결과가 산출됩니다.
오늘도 즐거운 하루 되세요.
-
*2018-06-28 09:56:26
안녕하세요.
1)
i는 50000으로 초기화됩니다.
SW는 0으로 초기화됩니다.
J에 화폐매수를 계산할 금액을 입력받습니다.
반복적으로 처리가 되는 구간의 시작입니다.
[50000]원에 대한 화폐 매수를 계산하고
i, K 즉 50000원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 0이므로
50000을 5로 나눈 10000을 i에 저장합니다.
SW에 1을 저장합니다.
[10000]원에 대한 화폐 매수를 계산하고
i, K 즉 10000원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 1이므로
10000을 2로 나눈 5000을 i에 저장합니다.
SW에 0을 저장합니다.
[5000]원에 대한 화폐 매수를 계산하고
i, K 즉 5000원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 0이므로
5000을 5로 나눈 1000을 i에 저장합니다.
SW에 1을 저장합니다.
[1000]원에 대한 화폐 매수를 계산하고
i, K 즉 1000원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 1이므로
1000을 2로 나눈 500을 i에 저장합니다.
SW에 0을 저장합니다.
[500]원에 대한 화폐 매수를 계산하고
i, K 즉 500원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 0이므로
500을 5로 나눈 100을 i에 저장합니다.
SW에 1을 저장합니다.
[100]원에 대한 화폐 매수를 계산하고
i, K 즉 100원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 1이므로
100을 2로 나눈 50을 i에 저장합니다.
SW에 0을 저장합니다.
[50]원에 대한 화폐 매수를 계산하고
i, K 즉 50원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 0이므로
50을 5로 나눈 10을 i에 저장합니다.
SW에 1을 저장합니다.
[10]원에 대한 화폐 매수를 계산하고
i, K 즉 10원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 1이므로
10을 2로 나눈 5를 i에 저장합니다.
SW에 0을 저장합니다.
[5]원에 대한 화폐 매수를 계산하고
i, K 즉 5원 화폐 단위와 매수를 출력합니다.
i>1이 Yes이므로
화폐 매수를 구한 금액을 뺀 나머지 금액을 J에 입력합니다.
SW가 0이므로
5을 5로 나눈 1을 i에 저장합니다.
SW에 1을 저장합니다.
[1]원에 대한 화폐 매수를 계산하고
i, K 즉 1원 화폐 단위와 매수를 출력합니다.
i>1이 No이므로
종료합니다.
결국 i는 0.5까지 진행하지 않고 1인 상태에서 종료가 되게 됩니다.
2)
return stack[top--];
는 stack 배열의 현재 top 위치의 값을 반환한 후 top의 값을 1 감소하는데
return stack[--top];
는 stack 배열의 현재 top에서 우선 1을 감소한 위치의 값을 반환합니다.
그러므로 다른 결과가 산출됩니다.
오늘도 즐거운 하루 되세요.