
백준 문제집 PS
ses0028님의 "IT기업 및 대기업 계열사 코테보면서 비슷했던 문제들(지속적으로 업데이트 중)" (현재 기준 89문제)
이번 방학 2달동안 다 푸는 것이 목표입니다.
25.01.08 - 브론즈 5문제
문제 문제 제목 문제 티어 문제 링크 23971 ZOAC 4 브론즈 3 https://www.acmicpc.net/problem/23971 5073 삼각형과 세 변 브론즈 3 https://www.acmicpc.net/problem/5073 2292 벌집 브론즈 2 https://www.acmicpc.net/problem/2292 1157 단어 공부 브론즈 1 https://www.acmicpc.net/problem/1157 2816 디지털 티비 브론즈 1 https://www.acmicpc.net/problem/2816

import math as m
input = open(0).readline
H, W, N, M = map(int, input().split())
print(m.ceil(W/(M+1)) * m.ceil(H/(N+1)))
가장 많이 사람들이 앉을 수 있는 방법은 가장 왼쪽 위에 무조건 사람이 한 명 앉으면서 정해진 거리만큼만 띄워서 앉는 것이다.
가로 / (띄워야 하는 간격+1)와 세로 / (띄워야 하는 간격+1)의 올림수가 앉을 수 있는 사람의 수이다. 나눈 값에서 올림을 하는 이유는 생각해보면 간단하다. 예를 들어, 가로 W가 10이고 세로 H도 10이라고 가정하자. 그리고 사람들마다 가로는 2칸씩(M), 세로는 3칸씩(N) 띄워야 한다면 최대한 앉을 수 있는 방법은 다음과 같다.
# 가로
XOOXOOXOOX # 한 행에 4명이 앉을 수 있다.
# 세로
X
O
O
O
X
O
O
O
X
O
가로 / (띄워야 하는 간격+1)에 수를 대입해보면 10/(2+1)와 같다. 계산하면 3.333...인데 올림을 해주면 4이다. 따라서, 한 행에 4명이 앉을 수 있다. 그리고 세로 / (띄워야 하는 간격+1)에 수를 대입해보면 10/(3+1)와 같다. 계산하면 2.5인데 올림을 해주면 3이므로 한 열에 3명이 앉을 수 있다.
그래서 한 행에 앉을 수 있는 수 x 한 열에 앉을 수 있는 수 인 4 x 3 = 12이므로 최대 12명이 앉을 수 있다.