작성일 :

문제 링크

13136번 - Do Not Touch Anything

설명

R행 C열의 좌석을 N×N 영역을 감시하는 CCTV로 모두 커버할 때 필요한 최소 CCTV 개수를 구하는 문제입니다.


접근법

행 방향으로 필요한 CCTV 수는 R을 N으로 나눈 값을 올림한 것입니다.

열 방향도 마찬가지로 C를 N으로 나눈 값을 올림합니다.

두 값을 곱하면 전체 CCTV 수가 됩니다.

올림 나눗셈은 (x + n - 1) / n으로 계산합니다.



Code

C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;

class Program {
  static void Main() {
    var line = Console.ReadLine()!.Split();
    var r = long.Parse(line[0]);
    var c = long.Parse(line[1]);
    var n = long.Parse(line[2]);

    long rows = (r + n - 1) / n;
    long cols = (c + n - 1) / n;
    Console.WriteLine(rows * cols);
  }
}

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  ll r, c, n; cin >> r >> c >> n;
  ll rows = (r + n - 1) / n;
  ll cols = (c + n - 1) / n;
  cout << rows * cols << "\n";

  return 0;
}