반응형

 

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 수학1 중 설탕 배달 ( 문제 번호 : 2839 )의 소스입니다.

 

 

Java와 Python 두가지 버전 소스입니다.

 

이 문제는 21과 8같은 숫자도 한번 예제로 입력해 보는게 좋을거같아요!

 

1) JAVA

import java.io.IOException;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) throws IOException{
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		scan.close();
		
		//5로 나눴을때 잘되는게 최우선
		if(n%5==0){
			System.out.println(n/5);
		}else{
			//5로 최대한 나눈뒤 3으로 나누어졌을때 가능한거
			int max_num = n/5;
			for(int i=max_num; i>0; i--){
				int calc = n-(5*i);
				if(calc%3==0){
					System.out.println(i+(calc/3));
					return;
				}
			} 
			
			//3으로 최대한 나누는거
			if(n%3==0){
				System.out.println(n/3);
			}else{
				System.out.println(-1);
			}
		}
	}
}

 

2) PYTHON

   * cnt는 3키로의 최소개수를 구하는 count

n = int(input())
if n % 5 == 0:
    print(n//5)
else:
    calc = n//5
    cnt = 0
    result = 0
    while True:
        n -= 3
        cnt += 1
        if n % 5 == 0:
            result = cnt + (n//5)
            break
        if n < 0:
            result = -1
            break
    print(result)

 

여러분도 한번 풀어보세요!

 

반응형

+ Recent posts