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

PublicMinsu·2024년 12월 4일

문제

접근 방법

가장 높은 빌딩의 최종 높이는 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개의 댓글