SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
풀이 과정
왼쪽, 오른쪽으로 2칸까지 다른 건물에 의해 뷰가 가려지지 않을 때, 조망권이 확보되었다고 하는데 여러 건물의 높이가 주어졌을 때 조망권이 확보된 세대의 수를 구하는 문제이다.
각 건물에 대해 왼쪽으로 2칸, 오른쪽으로 2칸에 있는 모든 건물의 높이를 확인 후, 현재 건물 - 근처 가장 높은 건물의 높이를 정답에 더해주면 된다. 현재 건물이 더 낮아서 조망권이 확보되는 세대가 없다면, 아무 것도 더해주지 않으면 된다.
소스 코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int T, garo, num;
int number = 1;
T = 10;
while(T--) {
int answer = 0;
cin >> garo;
vector<int> V(garo);
for (int i = 0; i < garo; i++) {
cin >> num;
V[i] = num;
}
for (int i = 2; i < garo - 2; i++) {
int temp = max({V[i-2], V[i-1], V[i+1], V[i+2]});
if (V[i] > temp) answer += (V[i] - temp);
}
cout << '#' << number++ << ' ' << answer << '\n';
}
return 0;
}
'알고리즘 문제 풀이 > 삼성 Swea' 카테고리의 다른 글
SWEA 2115 - [모의 SW 역량테스트] 벌꿀채취 [파이썬] (0) | 2023.03.04 |
---|---|
SWEA 1231 - 중위 순회 [파이썬] (0) | 2023.02.11 |
SWEA 10726. 이진수 표현 [Java] (0) | 2023.02.04 |
SWEA 1288. 새로운 불면증 치료법 [Java] (0) | 2023.02.04 |
SWEA 1954. 달팽이 숫자 [Java] (0) | 2023.01.22 |