본문 바로가기

코딩 테스트/백준

[Python] 백준 23971 ZOAC 4

 

문제 분석

  • 모든 참가자는 세로로 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