작성일 :

문제 링크

28014번 - 첨탑 밀어서 부수기

설명

일직선상에 놓인 첨탑을 밀어 넘어뜨리기 위해 몇 번 밀어야 하는지 계산하는 문제입니다.

첨탑의 높이가 다음 첩탑의 높이보다 높을 때만 그 다음 첨탑도 넘어집니다.


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
namespace Solution {
  class Program {
    static void Main(string[] args) {

      var n = int.Parse(Console.ReadLine()!);

      var input = Console.ReadLine()!.Split(' ');
      var lst = new List<int>();
      for (int i = 0; i < n; i++)
        lst.Add(int.Parse(input![i]));

      int cntPush = 0;
      for (int i = 0; i < n; i++) {
        while (i < n - 1 && lst[i] > lst[i + 1])
          i++;
        cntPush++;
      }

      Console.WriteLine(cntPush);

    }
  }
}



[ 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
#include <bits/stdc++.h>

using namespace std;

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

  int n; cin >> n;

  vector<int> v(n);
  for (int i = 0; i < n; i++)
    cin >> v[i];

  int cntPush = 0;
  for (int i = 0; i < n; i++) {
    while (i < n - 1 && v[i] > v[i + 1])
      i++;
    cntPush++;
  }

  cout << cntPush << "\n";

  return 0;
}