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
생각해 보기
- 단순 구현이면 5만 x 5만이라 시간초과가 나와야 하지만 넘어가는 것 같다.
- 가로행이 4칸이면 1칸 간격으로 2명, 세로열이 5칸이면 1칸 간격으로 3명이 들어간다.
- 10 5 2 2 이면 세로열이 10칸이고 3칸 간격이므로 ceil(10/3) = 4칸, 가로행이 5칸이고 3칸 간격이므로 ceil(5/3) = 2칸 총 4 * 2 8칸이 나온다.
예제
더보기
10 10 2 2
16
코드
구현
더보기

#include<iostream>
using namespace std;
int H,W,N,M;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>H>>W>>N>>M;
int cnt=0;
for(int i=1;i<=H;i+=N+1){
for(int j=1;j<=W;j+=M+1){
++cnt;
}
}
cout<<cnt<<'\n';
return 0;
}

수학
더보기

#include<iostream>
#include<cmath>
using namespace std;
int H,W,N,M;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>H>>W>>N>>M;
cout<<(int)ceil((double)H/(N+1)) * (int)ceil((double)W/(M+1))<<'\n';
return 0;
}

ceil의 반환 값이 double 이기 때문에 int로 타입캐스팅을 해줘야 한다.
728x90
'알고리즘 > 백준 문제' 카테고리의 다른 글
| 10431 - 줄 세우기 (0) | 2023.02.23 |
|---|---|
| 5073 - 삼각형과 세 변 (0) | 2023.02.22 |
| [ALGORITHM] 백준 20056 - 마법사 상어와 파이어볼 (0) | 2022.12.13 |
| [ALGORITHM] 백준 17420 - 깊콘이 넘쳐흘러 (0) | 2022.10.25 |
| [ALGORITHM] 백준 2011 - 암호코드 (0) | 2022.10.17 |
댓글