문제설명

 

 

소스코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
    public static void main(String[] args) throws Exception
    {
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int coinCount = 0;
         while(true)
         {
            if(n % 5 == 0)
            {
                 coinCount += n / 5;
                 System.out.println(coinCount);
                 break;
            }
            else
            {
                 n -= 2;
                 ++coinCount;
            }
            if(n < 0)
            {
                 System.out.println(-1);
                 break;
            }
         }
    }
}

 

설명

  • n을 5로 나누었을때 나머지가 0이 되면 종료 조건이 된다. (n이 0이면 n을 5로 나눈 나머지도 0이기 때문)
  • n 이 음수라면 동전을 교환해줄 수 없다.
  • n을 5로 나누었을 때 나머지가 0이면, 동전 개수에 n을 5로 나누었을 때 몫을 더하고 출력한다.
     외의 경우에는 n을 2만큼 감소시키고, 동전 개수를 증가시킨다.