https://www.acmicpc.net/problem/23971
변수가 너무 많아서 읽는데 힘들었던 문제였다
- h = 세로
- w = 가로
- n = 세로 차이
- m = 가로 차이
정리하고 보니 별 거 아닌 조건이다,,,
아무튼! 문제의 질문은 h*w의 크기의 강의실에서 세로로 n칸 또는 가로로 m칸 떨어져서 수용할 수 있는 최대 수
를 구하면 된다.
생각보다 어려운데,,,? 라고 생각했는데 어떤 접근방법을 생각해볼까 하다가 단순히 수학적으로 (0,0)좌표 부터 가로, 세로를 각각 나누어 n+1,m+1 만큼늘어나는 for문을 돌아주면서 횟수를 늘려주고 곱하면 되는 문제였다.
구현 문제에 익숙해지자
#include <iostream>
#define MAX 50001
using namespace std;
int h, w, n, m;
//최대 몇 명 수용?
int main(){
cin >> h >> w >> n >> m;
int height = 0;
int width = 0;
for (int i = 0; i < h; i+=n+1) {
height++;
}
for (int i = 0; i < w; i += m+1) {
width++;
}
cout << height * width;
}
'Algorithm > 구현, 시뮬레이션' 카테고리의 다른 글
[BAEKJOON] 10431번 줄세우기 (1) | 2024.03.19 |
---|---|
[BAEKJOON] 9655번 돌게임 (1) | 2024.03.19 |
[BAEKJOON] 1157번 단어 공부 (1) | 2024.03.18 |
[BAEKJOON] 2292번 벌집 (0) | 2024.03.18 |
[BAEKJOON] 5073번 삼각형과 세 변 (1) | 2024.03.18 |