[백준/BOJ]14916. 거스름돈 [Silver 5]

jychan99·2021년 8월 25일
0
post-thumbnail
  1. 거스름돈

문제출처 : https://www.acmicpc.net/problem/14916

code

#include <stdio.h>
int main()
{
	int N, five = 0, two = 0, result = 0, flag = 0;
	scanf("%d", &N);
	five = N / 5;
	two = N % 5;
	while (1)
	{
		if (two % 2 == 0)
			break;
		else if (five == 0 && two % 2 != 0)
		{
			flag = 1;
			break;
		}
		else
		{
			five--;
			two += 5;
		}
	}
	result = five + (two / 2);
	if (flag == 0)
		printf("%d", result);
	else
		printf("-1");
	return 0;
}

코드는 매우쉽다.
여러방법이 있지만, 나는 5로 먼저 나누고, 나머지가 짝수로 떨어질때 까지 5로 나눈 몫을 -1하고 나머지에 +5를 해줬다. 그리고 flag를 세워서 딱 떨어지지 않는 수면, -1을 반환하도록 했다. 딱 떨어지지 않는수는 1이랑 3밖에 없는거같아서(검증은 안해봤음) N이 1이나 3이면 -1을 반환 하도록 하면 좀더 코드가 매끄러워지지 않을까 생각한다.

profile
내가 지금 두려워 하고 있는 일이 바로 내가 지금 해야 할 일이다. 🐥

0개의 댓글