작성일 :

문제 링크

26392번 - Desni klik

설명

여러 NFPs, (Noa’s Financial Products) 의 불안정성을 계산하는 문제입니다.

NFPrs 열의 행렬로 표현되며, 각 열에서 # 문자의 위치는 NFP 의 값(해당 열에서의 위치)을 나타냅니다.

NFP 의 불안정성은 주어진 기간 동안 NFP 가 도달하는 최대값과 최소값의 차이로 정의됩니다.


Code

[ C# ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
namespace Solution {
  class Program {
    static void Main(string[] args) {

      var inputs = Console.ReadLine()!.Split(' ').Select(int.Parse).ToArray();
      int n = inputs[0], r = inputs[1], s = inputs[2];

      for (int i = 0; i < n; i++) {
        int maxValue = int.MinValue;
        int minValue = int.MaxValue;
        for (int j = 0; j < r; j++) {
          string row = Console.ReadLine()!;
          for (int k = 0; k < s; k++) {
            if (row[k] == '#') {
              int value = r - j;
              maxValue = Math.Max(maxValue, value);
              minValue = Math.Min(minValue, value);
            }
          }
        }

        int insecurity = maxValue - minValue;
        Console.WriteLine(insecurity);
      }
    }
  }
}



[ C++ ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <bits/stdc++.h>

using namespace std;

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

  int n, r, s; cin >> n >> r >> s;

  for (int i = 0; i < n; i++) {
    int maxValue = numeric_limits<int>::min();
    int minValue = numeric_limits<int>::max();

    for (int j = 0; j < r; j++) {
      string row; cin >> row;
      for (int k = 0; k < s; k++) {
        if (row[k] == '#') {
          int value = r - j;
          maxValue = max(maxValue, value);
          minValue = min(minValue, value);
        }
      }
    }

    int insecurity = maxValue - minValue;
    cout << insecurity << "\n";
  }

  return 0;
}