문제 분석
- 모든 참가자는 세로로 N칸, 가로로 M칸 이상 비우고 앉아야 한다.
- 즉, 다른 모든 참가자와 세로줄 번호의 차가 N보다 크거나 가로줄 번호의 차가 M보다 큰 곳에만 앉을 수 있다.
- 최대 몇 명이 강의실에 앉을 수 있는가?
아이디어 / 코드 설계
- 띄어야 하는 칸이 2칸이라면, 3(2+1)칸에 한명 씩 앉을 수 있다.
- 만약 한 줄이 3의 배수라면 (한 줄의 길이) // 3 만큼 앉을 수 있지만, 만약 3의 배수가 아니라면 1명 더 앉을 수 있다.
정답 코드
import sys
input = sys.stdin.readline
h, w, r, c = map(int, input().split())
def ans(a,b) :
if a % (b+1) == 0 : # 배수이면
return a//(b+1)
return a//(b+1) + 1
print(ans(h,r) * ans(w,c))
'코딩 테스트 > 백준' 카테고리의 다른 글
[Python] 백준 2530 인공지능 시계 (0) | 2025.01.24 |
---|---|
[Python] 백준 1205 등수 구하기 (0) | 2025.01.24 |
[Python] 백준 2485 가로수 (0) | 2025.01.23 |
[Python] 백준 10431 줄세우기 (0) | 2025.01.22 |
[Python] 백준 2941 저작권 (0) | 2025.01.21 |