-- 예전 기록/BOJ

[ BOJ ] 23825 : SASA 모형을 만들어보자 ( BRONZE 4 ) / C, Python

rejo 2023. 10. 3. 10:50

문제

당신은 SASA 연못에서 알파벳 S 모양의 블록 개와 알파벳 A 모양의 블록 개를 건졌다. 태영이는 연못에서 건진 블록을 이용해 학교에 전시할 SASA 모형을 최대한 많이 만들려고 한다.

SASA 모형 개를 만들기 위해서는, 알파벳 S 모양의 블록 2개와 알파벳 A 모양의 블록 개가 필요하다. 태영이가 만들 수 있는 SASA 모형 개수의 최댓값을 구하라.

입력

첫째 줄에 알파벳 S 모양의 블록의 개수 과 알파벳 A 모양의 블록의 개수 이 공백으로 구분되어 주어진다.

출력

태영이가 만들 수 있는 SASA 모형 개수의 최댓값을 출력한다.

풀이 과정

아무리 S 모양 블록을 많이 가진다 한들, A 모양 블록이 부족하면 SASA 모형을 A 모양 블록 개수에 맞게 만들 수 밖에 없다.

아무리 A 모양 블록을 많이 가진다 한들, S 모양 블록이 부족하면 SASA 모형을 S 모양 블록 개수에 맞게 만들 수 밖에 없다.

 

S 모양 2개와 A 모양 2개로 SASA 모형을 1개 만들 수 있기 때문에, 만들 수 있는 SASA 모형 개수의 최댓값은 S 모양 블록과 A 모양 블록 중 최솟값(적게 가진 블록의 개수)을 2로 나눈 몫이다.

( S 2개, A 10개를 가지면 SASA 모형을 1개 만들 수 있다. S 10개, A 3개를 가지면 SASA 모형을 1개 만들 수 있다. )

C

#include <stdio.h>

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

int main(void) {
    int n, m;
    scanf("%d %d", &n, &m);
    printf("%d", min(n, m)/2);
    return 0;
}

Python

n, m = map(int, input().split())
print(min(n, m)//2)