BOJ 23071번: ZOAC 4 [Python]

hysong·2022년 8월 27일
0

PS

목록 보기
9/15

📌 Problem.

https://www.acmicpc.net/problem/23971

가로 W, 세로 H 길이의 강연장이 있다.
이 강연장에 모든 참가자가 가로로 M, 세로로 N만큼 떨어져 앉도록 할 때, 최대 몇 명까지 수용 가능한지 출력하는 문제이다.

📌 Solution.

import math
import sys

input = sys.stdin.readline
H, W, N, M = map(int, input().split())
print(math.ceil(H / (N + 1)) * math.ceil(W / (M + 1)))

H, W를 각각 N + 1, M + 1로 나눈다.
제수는 띄울 거리 N(또는 M)과 참가자가 앉을 자리 하나를 합친 값이다.
H가 N + 1로 나누어떨어지지 않는 경우, 남는 자리에 참가자를 한 명 더 앉힐 수 있음을 의미한다.

가령 H = 7이고 N = 2이면 'O X X O X X O'로 참가자를 앉힐 수 있다.
이때 N + 1, 즉 3은 O X X의 한 사이클을 나타낸다고 볼 수 있다.
O X X, O X X 총 두 사이클로 참가자를 앉히고, 남은 한 자리에 참가자를 한 명 더 앉힘으로써 한 행에 총 3명의 참가자를 앉힐 수 있다.

0개의 댓글