관리 메뉴

cococo-coding

23971번. ZOAC 4 (c++ 풀이) 본문

[BOJ] 코드 모음/C++_learning 문제집

23971번. ZOAC 4 (c++ 풀이)

_dani 2024. 1. 5. 01:54

문제

 

최종 코드

#include <iostream>
#include <cmath> //ceil함수를 이용하기 위함
using namespace std;

/*
1. h w n m을 입력받는다. (h w는 강의실 테이블, n m은 떨어져야하는 거리)
2. 강의실이 수용할 수 있는 최대 인원을 구한다.
3. 2번을 출력한다.
*/

int main() {
    
    //1
    double h, w, n, m; 
    cin >> h >> w >> n >> m;

    //2
    double row = 0, column = 0;
    row = (long)ceil(h / (n + 1));
    column = (long)ceil(w / (m + 1));

    //3
    int sum = row * column;
    cout << sum << endl;

    return 0; 
}

 

코드 설명

처음에는 h m을 입력받아 2차원 배열을 생성해서 풀려고 했는데 오류가 났다. 

구글링을 해보니  ceil 함수를 이용해서 많이들 푸시더라 

ceil 함수는 올림 함수이기 때문에

위에처럼 h w n m을 double로 입력받고, 각 행과 열에 들어갈 수 있는 사람 수도 double로 선언하고 문제를 풀었다. 

(처음에는 평소처럼 int로 지정하고 풀었더니 올림이 안 되는 문제가 발생.. 이 부분 주의하면 좋을 것 같다)

ceil 함수만 알면 쉽게 풀 수 있는 문제였다.