[C++][백준 26123] 외계 침략자 윤이

PublicMinsu·2024년 12월 4일
0

문제

접근 방법

가장 높은 빌딩의 최종 높이는 D번만큼 레이저를 맞은 높이일 것입니다.
가장 높은 빌딩의 높이가 낮아질 동안 다른 빌딩들도 영향을 받는다는 점을 고려하면 됩니다.

코드

#include <iostream>
#include <vector>
using namespace std;
int N, D, maxH;
long long answer;
vector<int> h;
int main()
{
    ios::sync_with_stdio(0), cin.tie(0);

    cin >> N >> D;

    h = vector<int>(N);

    for (int &i : h)
    {
        cin >> i;
        maxH = max(maxH, i);
    }

    int hurdle = maxH - D;
    hurdle = max(0, hurdle);

    for (int &i : h)
    {
        if (hurdle < i)
        {
            answer += i - hurdle;
        }
    }

    cout << answer;
    return 0;
}

풀이

가장 높은 빌딩의 D일 후 조정된 높이가 결국 D일 후에 빌딩들의 최고 높이입니다.

가장 높은 빌딩의 조정된 높이보다 높이가 높은 빌딩들은 조정된 높이만큼 낮아질 것입니다. 조정될 높이까지의 높이 차이를 합산하여 출력하면 됩니다.

profile
연락 : publicminsu@naver.com

0개의 댓글