[C#] 백준 2839번 설탕 배달
2021. 12. 21. 22:39ㆍ코딩테스트 문제 풀이/[백준] 기본 수학1
728x90
반응형
정답 코드 :
using System;
namespace _7
{
class Program
{
static void Main(string[] args)
{
int input = Convert.ToInt32(Console.ReadLine());
int inputSave = input;
int divisionFive = input / 5;
int min = 10000;
if (input % 3 == 0 && min > input / 3)
min = input / 3;
for (int i = 1; i < divisionFive + 1; i++)
{
input = inputSave;
input -= 5 * i;
if(input % 3 == 0)
{
int divisionThree = input / 3;
if(min > i + divisionThree)
min = i + divisionThree;
}
else if(input == 0)
{
if (min > i)
min = i;
}
}
if (min == 10000)
min = -1;
Console.WriteLine(min);
}
}
}
18을 5로 나누면 몫이 3이 나온다. 즉 18에서는 5가 1개, 2개, 3개 일 경우가 있다. 이를 한번씩 비교해보면서 min값을 추출하는 방식이다.
예를들어 5가 하나면 남은 13에서 3으로 안나눠 떨어지기 때문에 그런경우는 없다.
마찬가지로 5가 2개면 남은 8에서 3으로 안나눠 떨어지기 때문에 이 역시 그런경우는 없다.
만약 5가 3개면 남은 3에서 3으로 나눠 떨어지기때문에 5는 3개, 3은 1개, 총 4개이다.
그 위에 3으로 나눴을때의 min값이 6이기 때문에 min은 4가 된다.
728x90
반응형
'코딩테스트 문제 풀이 > [백준] 기본 수학1' 카테고리의 다른 글
[C#] 백준 1011번 Fly me to the Alpha Centauri (0) | 2021.12.22 |
---|---|
[C#] 백준 10757번 큰 수 A+B (0) | 2021.12.21 |
[C#] 백준 2775번 부녀회장이 될테야 (0) | 2021.12.21 |
[C#] 백준 10250번 ACM 호텔 (0) | 2021.12.21 |
[C#] 백준 2869번 달팽이는 올라가고 싶다 (0) | 2021.12.21 |