1. 문제 링크 : https://www.acmicpc.net/problem/23971
23971번: ZOAC 4
i행 j열 자리를 (i, j)라고 할 때, (1,1)에 참가자가 앉은 경우 다른 참가자는 (1,2), (2,1), (2,2) 자리를 제외한 나머지 자리에 앉을 수 있다. (2,2)의 경우는 (1,1)과 행 번호 및 열 번호의 차가 1보다 크
www.acmicpc.net
2. W개씩 H행에 걸쳐 있을 때, 모든 참가자는 세로로 N칸 또는 가로로 M칸 이상 비우고 앉아야 한다.
3. 메모리 초과 코드
# col : W , row : H
# 세로 N or 가로 M 띄고 앉기
input_lst = list(map(int, input().split()))
H, W, N, M = input_lst[0], input_lst[1], input_lst[2], input_lst[3] # 5 4 1 1
seats = [[0]*W for _ in range(H)]
# 한 명이 자리에 앉는 경우 주위를 -1 로 만들어서 앉을 수 없도록 해주기
for r in range(0, H, M+1):
for c in range(0, W, N+1):
seats[r][c] = 1
cnt = 0
for r in range(H):
for c in range(W):
if seats[r][c] == 1:
cnt += 1
print(cnt)
4. 정답 코드
import math
H, W, N, M = map(int, input().split())
a = math.ceil(W/(M+1))
b = math.ceil(H/(N+1))
print(a*b)
5. 고찰
메모리 제한 : 512MB
시간 제한 : 1초
'CS > 알고리즘 문제 풀이' 카테고리의 다른 글
[Java] 배열 기본 오답노트 (0) | 2024.05.05 |
---|---|
[프로그래머스/알고kit/해시] 폰켓몬 (1) | 2024.03.07 |
[프로그래머스/알고kit/DFS,BFS] 타겟 넘버 (1) | 2024.01.27 |
[프로그래머스/알고kit/그리디] 체육복 (0) | 2024.01.21 |
[프로그래머스/알고kit/정렬] K번째수 (0) | 2024.01.18 |