[백준 28014] 첨탑 밀어서 부수기 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
일직선상에 놓인 첨탑을 밀어 넘어뜨리기 위해 몇 번 밀어야 하는지 계산하는 문제입니다.
첨탑의 높이가 다음 첩탑의 높이보다 높을 때만 그 다음 첨탑도 넘어집니다.
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;
}