[BOJ-Code] 2839 - 설탕 배달

Posted by DHniyeo Blog on March 9, 2024

문제 링크

💡 다이나믹 프로그래밍/그리디 알고리즘/수학

Memory 1112KB Time 0ms Code Length 572B

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include<stdio.h>

int main()
{
	int sugar;
	scanf("%d", &sugar);
	int result = 0;
	result = 2 * (sugar / 10);
	if (sugar == 1 || sugar == 2 || sugar == 4 || sugar == 7) {
		result = -1;
	}
	else {
		sugar = sugar % 10;

		//11 == 3
		//12 == 4
		//13 == 3
		//14 == 4
		//15 == 3
		//16 == 4
		//17 == 5
		//18 == 4
		//19 == 5
		switch (sugar)
		{
		case 1:
		case 3:
		case 5:
			result += 1;
			break;
		case 2:
		case 4:
		case 6:
		case 8:
			result += 2;
			break;
		case 7:
		case 9:
			result += 3;
			break;
		default:
			break;
		}
	}
	printf("%d\n", result);
}

이 코드는 사용자로부터 정수를 입력받아서 그 수에 따라 연산을 수행하여 결과를 출력하는 프로그램이다. 먼저 사용자가 입력한 수를 10으로 나눈 몫에 2를 곱한 값을 result에 저장한다. 그 후, 입력한 수가 1, 2, 4, 7 중 하나인 경우 result를 -1로 설정한다. 그렇지 않은 경우, 입력한 수를 10으로 나눈 나머지를 구하고 switch 문을 사용하여 각 경우에 따라 result에 값을 더해준다. 마지막으로, 결과값을 출력한다.