C#

백준 C# 2839 문제 풀이

psb08 2024. 9. 16. 09:19
728x90

문제 링크 : https://www.acmicpc.net/problem/2839

 

백준 실버 4 문제 입니다.

 

내 코드

 int input = int.Parse(Console.ReadLine());

 int count = 0;

 while (input > 0)
 {
     if (input % 5 == 0)
     {
         input -= 5;
         count++;
     }
     else if (input % 3 == 0)
     {
         input -= 3;
         count++;
     }
     else if (input > 5)
     {
         input -= 5;
         count++;
     }
     else
     {
         count = -1;
         break;
     }
 }
 Console.WriteLine(count);

 

코드 풀이 해석 내용

 

int input = int.Parse(Console.ReadLine());

입력을 받아 input 변수에 정수로 저장을 합니다.

 

int count = 0;

count 변수를 0으로 초기화합니다.

이 변수는 5나 3을 뺀 횟수를 세는 데 사용할겁니다.

 

while (input > 0)

input이 0보다 큰 동안 반복합니다.

 

if (input % 5 == 0)
{
    input -= 5;
    count++;
}

input이 5의 배수면 5를 빼고 count를 1 증가 시킵니다.

 

else if (input % 3 == 0)
{
    input -= 3;
    count++;
}

input이 3의 배수면 3을 빼고, count를 1 증가 시킵니다.

 

else if (input > 5)
{
    input -= 5;
    count++;
}

input이 5보다 크면 5을 빼고, count를 1 증가 시킵니다.

이 경우 3의 배수가 아니여도 5를 빼게 됩니다.

 

else
{
    count = -1;
    break;
}

위의 모든 조건들을 만족하지 않는다면 count를 -1로 설정합니다.

그 다음 반복을 종료합니다.

이는 더 이상 뺄 수 없다는 것을 나타냅니다.

 

Console.WriteLine(count);

최종적으로 count 값을 출력합니다.

만약 -1이 출력되면, 5와 3의 조합으로 input을 0을 만들 수 없다는 뜻입니다.

 

 

실행 결과

실행 결과 1
실행 결과 2

 

728x90

'C#' 카테고리의 다른 글

백준 C# 4153 문제 풀이  (0) 2024.09.17
백준 C# 1181 문제 풀이  (0) 2024.09.16
백준 C# 8958 문제 풀이  (0) 2024.09.15
백준 C# 2920 문제 풀이  (0) 2024.09.15
백준 C# 10250 문제 풀이  (0) 2024.09.15