[C++] 백준 1668 트로피 진열
반응형
1. 서론
왜 이렇게 브론즈 문제는 쉬운데 말이 많을까... 말로 현혹시켜서 문제를 못 풀게 하려는 의도인가? 쓸모없는 설정이 너무 많아서 문제를 이해하는데 시간을 걸리게 하려는 음해로 밖에 안 보임!!!
2. 문제 풀이
입력 첫째줄에 트로피의 개수가 주어진다. 그리고 그 트로피의 길이가 주어지는데 주어지는 순서는 왼쪽부터 오른쪽 순서대로 주어진다.
트로피의 길이가 다른 트로피들보다 길다면 그 뒤에 있는 트로피는 안 보이므로 왼쪽과 오른쪽에서 본 트로피의 개수는 다르다.
그렇게 트로피가 서있다고 가정할 때 왼쪽에서 보이는 트로피의 개수와 오른쪽에서 보이는 트로피의 개수를 출력하는 문제다.
배열로 트로피의 길이를 받았다고 생각했을 때 왼쪽은 0기준, 오른쪽은 n기준으로. 즉 배열을 앞에서부터 끝까지, 뒤에서부터 제일 앞까지 보면서 최고의 값을 보는데 그 와중에 최고의 값을 기준으로 더 크면 count 하면 된다.
0 기준 -> 1 2 3 4 5 => 5개
n 기준 -> 5 => 1개
3. 코드 설명
#include <iostream>
using namespace std;
int main()
{
int n, i, c = 0, m = 0;
int a[50];
cin >> n;
for (i = 0; i < n; i++)
cin >> a[i];
for (i = 0; i < n; i++)
{
if (m < a[i])
{
m = a[i];
c++;
}
}
cout << c << endl;
c = 0; m = 0;
for (i = n - 1; i >= 0; i--)
{
if (m < a[i])
{
m = a[i];
c++;
}
}
cout << c << endl;
}
n과 배열을 입력받고 배열을 0부터, n-1부터 돌려서 가장 큰 값을 찾음과 동시에 그 값이 바뀌면 c에 count 한다.
그게 각각 왼쪽과 오른쪽에서 보이는 트로피의 값이다.
반응형
'Algorithm' 카테고리의 다른 글
[C++] 백준 15969 행복 (0) | 2021.04.16 |
---|---|
[C++] 백준 1236 성 지키기 (1) | 2021.03.28 |
[C++] 백준 1568 새 (0) | 2021.03.27 |
[C++] 백준 1302 베스트셀러 (0) | 2021.03.27 |
[C++] 백준 1543 문서 검색 (0) | 2021.03.26 |