코드
def solution():
h, w, n, m = map(int, input().split())
row = w // (m + 1)
if w % (m + 1) > 0:
row += 1
col = h // (n + 1)
if h % (n + 1) > 0:
col += 1
print(row * col)
solution()
풀이
사람이 앉아야하는 좌석과 유지되어야하는 간격을 합쳐서 일렬로 최대로 나열할 수 있는 만큼 계산한다.
한 행에 나열될 수 있는 사람 수를 계산한다.
row = w // (m + 1)
행의 마지막 사람은 오른쪽에 주어진 간격을 지킬 필요가 없으니 한 자리라도 남았다면 사람을 배치할 수 있다.
if w % (m + 1) > 0:
row += 1
열도 이와 마찬가지로 계산해준 뒤 둘을 곱하면 답이 나온다.
col = h // (n + 1)
if h % (n + 1) > 0:
col += 1
print(row * col)
출력결과
'백준 > 구현' 카테고리의 다른 글
[백준][Python] 1027번 고층 건물 (0) | 2025.05.26 |
---|---|
[백준][Python] 202920번 영단어 암기는 어려워 (0) | 2025.05.26 |
[백준][Python] 20125번 쿠키의 신체 측정 (0) | 2025.05.23 |
[백준][Python] 1850번 LCM (0) | 2025.03.29 |
[백준][Python] 1972번 놀라운 문자열 - 실버 3 (0) | 2024.05.16 |