https://www.acmicpc.net/problem/2839
처음에는 for문과 여러 조건문들로 구성하여 풀어보았지만, 점점 너무 복잡해져 다른 방법을 찾아보았다.
조건
1) 설탕이 5로 나누어 떨어지는 경우
2) 1을 충족하지 않지만 5와 3으로 나누어 떨어지는 경우 (마지막은 무조건 3으로 나누어 떨어져야 한다)
3) 설탕이 3으로 나누어 떨어지는 경우
4) 나누어 떨어지지 않는 경우 -1 출력
1, 2, 3 순으로 적은 봉지 수로 구성되기 때문에, 뒤 조건을 만족할 수 있는 상황이어도 앞의 조건을 먼저 확인해야 한다.
using System;
namespace _2839
{
class Program
{
static void Main()
{
int sugar = int.Parse(Console.ReadLine());
int n = 0; //봉지 수
while (sugar > 0)
{
if (sugar % 5 == 0)
{
sugar -= 5;
n++;
}
else if (sugar % 3 == 0)
{
sugar -= 3;
n++;
}
else if (sugar > 5)
{
sugar -= 5;
n++;
}
else
{
n = -1;
break;
}
}
Console.WriteLine(n);
}
}
}
'알고리즘 > 백준 BOJ' 카테고리의 다른 글
[ BOJ/C# ] 1159 농구 경기 (0) | 2023.08.27 |
---|---|
[ BOJ/C# ] 1764 듣보잡 (0) | 2023.08.26 |
[ BOJ/C# ] 2844 알람 시계 (0) | 2023.08.25 |
[ BOJ/C# ] 2751 수 정렬하기 2 (0) | 2023.08.23 |
[ BOJ/C# ] 10828 스택 (0) | 2023.08.23 |