-- 예전 기록/BOJ

[ BOJ ] 25628 : 햄버거 만들기 ( BRONZE 4 ) / C, Python

rejo 2023. 9. 26. 15:15

문제

햄버거 가게에서 일하는 종현이는 햄버거를 만드는 일을 하고 있다. 가게에는 햄버거 빵이 개, 햄버거 패티가 개 있는데, 이 빵과 패티를 가지고 최대한 햄버거를 많이 만드려고 한다. 햄버거를 만드는 과정은 아주 간단한 세 단계로 이루어져 있다.

  1. 그릇 위에 빵을 놓는다.
  2. 빵 위에 패티를 올린다.
  3. 패티 위에 다시 빵을 올려서 햄버거를 완성시킨다.

햄버거 빵 개와 햄버거 패티 개로 만들 수 있는 햄버거의 최대 개수는 얼마일까? 단, 햄버거 빵은 위에 놓는 빵과 아래에 놓는 빵의 구분이 없으며, 남는 빵이나 패티가 있어도 된다.

입력

첫째 줄에 햄버거 빵의 개수와 햄버거 패티의 개수를 의미하는 A, B (1 ≤ A, B ≤ 100) 가 주어진다.

출력

만들 수 있는 햄버거의 최대 개수를 출력한다.

풀이 과정

햄버거 하나를 완성시키는 데에 빵 2개와 패티 1개가 필요하다. 따라서 만들 수 있는 햄버거의 최대 개수는 min(A/2, B) 개이다.

 

빵의 개수가 4개이고 패티가 3개이면, 빵 4개와 패티 2개로 햄버거 2개를 만들고 패티 1개를 남길 수 있다.

빵의 개수가 2개이고 패티가 3개이면, 빵 2개와 패티 1개로 햄버거 1개를 만들고 패티 2개를 남길 수 있다.

빵의 개수가 8개이고 패티가 3개이면, 빵 6개와 패티 3개로 햄버거 3개를 만들고 빵 2개를 남길 수 있다.

 

빵이 아무리 많아도 패티가 모자라면, 패티 B개만큼 햄버거를 최대 B개 만들 수 있고, 패티가 아무리 많아도 빵이 모자라면, 빵 A개만큼 햄버거를 최대 A/2개 만들 수 있다.

 

빵과 패티 중 어느 걸 끝까지 쓸지 모르기 때문에, A/2 와 B 중의 최솟값이 지금 가지고 있는 재료로 만들 수 있는 햄버거의 최대 개수이다.

 

따라서, 빵 A개와 패티 B개로 만들 수 있는 햄버거의 최대 개수는 min(A/2, B) 개이다.

C

#include <stdio.h>

int min(int a, int b) {
    if (a < b) return a;
    return b;
}

int main(void) {
    int a, b;
    scanf("%d %d", &a, &b);

    printf("%d", min(a/2, b));
    return 0;
}

Python

a,b=map(int,input().split())
print(min(a//2,b))