[SWEA][C++] 1206. [S/W 문제해결 기본] 1일차 - View

2024. 4. 24. 22:48·💭 Problem Solving/C++

문제

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh&

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

풀이

건물은 왼쪽에서 3번째 칸부터 오른쪽에서 3번째 칸까지 존재한다.

조망권이 확보된 세대는 왼쪽 2칸, 오른쪽 2칸에 다른 세대가 없어야 한다. 즉, 왼쪽 2칸, 오른쪽 2칸에 있는 건물보다 높으면 조망권이 확보된 세대가 존재한다.

 

이를 이용하여 다음과 같이 문제를 풀 수 있다.

1. 왼쪽에서 3번째 건물부터 오른쪽에서 3번째 건물까지 탐색한다.
    => i의 범위는 2 ~ n-3이다.
2. 현재 탐색하는 건물이 왼쪽의 두 건물과 오른쪽의 두 건물보다 높으면 조망권이 확보된 세대가 존재한다.
    => 현재 탐색하는 건물 i와 i-2, i-1, i+1, i+2번째 건물을 비교한다.
3. 현재 탐색하는 건물에서 조망권이 확보된 세대의 개수를 계산한다.
    => i번째 건물의 높이 - 양 옆 4개의 건물 중 가장 높은 건물의 높이

 

코드

#include<iostream>
#include<vector>

using namespace std;

int main() {
    int T = 10;

    for (int test_case = 1; test_case <= T; ++test_case) {
        int n, ans = 0;

        // 입력
        cin >> n;

        vector<int> building(n, 0);
        for (int &i: building)
            cin >> i;

        // 연산
        for (int i = 2; i < n - 2; i++) {
            int max_building = max(max(building[i + 1], building[i + 2]), max(building[i - 1], building[i - 2]));
            if (building[i] > max_building)
                ans += building[i] - max_building;
        }

        // 출력
        cout << '#' << test_case << ' ' << ans << '\n';
    }

    return 0;
}

'💭 Problem Solving > C++' 카테고리의 다른 글

[BOJ][C++] 백준 1212번: 8진수 2진수  (0) 2024.05.24
[BOJ][C++] 백준 9184번: 신나는 함수 실행  (0) 2024.05.12
[SWEA][C++] 1209. [S/W 문제해결 기본] 2일차 - Sum  (0) 2024.05.06
[SWEA][C++] 2805. 농작물 수확하기  (0) 2024.05.05
[SWEA][C++] 1208. [S/W 문제해결 기본] 1일차 - Flatten  (0) 2024.04.27
'💭 Problem Solving/C++' 카테고리의 다른 글
  • [BOJ][C++] 백준 9184번: 신나는 함수 실행
  • [SWEA][C++] 1209. [S/W 문제해결 기본] 2일차 - Sum
  • [SWEA][C++] 2805. 농작물 수확하기
  • [SWEA][C++] 1208. [S/W 문제해결 기본] 1일차 - Flatten
0=2.
0=2.
  • 0=2.
    0=2
    0=2.
  • 전체
    오늘
    어제
    • 분류 전체보기 (104)
      • 📂 Project (2)
        • Paint the City (2)
      • 💭 Problem Solving (42)
        • C++ (28)
        • Java (14)
      • 📝 Study (17)
        • React (1)
        • Java (16)
      • 💻 CS (11)
        • 면접을 위한 CS 전공지식 노트 (2)
        • 정보처리기사 (9)
      • 🏃‍♀️ Activities (32)
        • Web Front-End Basic Study (6)
        • 42 Cursus (26)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    .h
    42경산
    HTML
    knapsack
    BFS
    CS
    unity
    VR
    프로그래머스
    C
    맵
    dynamic programming
    브루트포스
    dfs
    CSS
    git
    트리
    백준
    백트래킹
    react
    정렬
    정보처리기사
    github
    시뮬레이션
    그리디 알고리즘
    java
    구현
    swea
    La Piscine
    makefile
  • hELLO· Designed By정상우.v4.10.3
0=2.
[SWEA][C++] 1206. [S/W 문제해결 기본] 1일차 - View
상단으로

티스토리툴바