티스토리 뷰

백준/골드

[백준 1027번] 고층 건물 (C++)

게임개발기원 2025. 4. 21. 00:21

문제링크 : https://www.acmicpc.net/problem/1027

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int N;
int arr[51];
int cnt[51];

int main() 
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    cin >> N;
    for(int i=0; i<N; i++) cin >> arr[i];

    for(int i=0; i<N-1; i++)
    {
        double maxV = -INT_MAX;
        for(int j=i+1; j<N; j++)
        {
            double tmp = (double)(arr[j]-arr[i])/(j-i);
            if(tmp > maxV)
            {
                cnt[i]++;
                cnt[j]++;
                maxV = tmp;
            }
        }
    }

    cout << *max_element(cnt, cnt+N);

    return 0;
}

 

기울기를 활용한 문제다.

입력받은 모든 빌딩의 거리와 높이차를 기준으로 기울기를 계산하며, 가장 큰 키울기일 때의 가능한 수를 체크한다.

카운팅의 경우 최대 기울기 갱신 때마다 양쪽 빌딩을 모두 카운터 해주며, 가장 큰 기울기 일때 누적된 가장 큰 값을 출력하게 된다.

'백준 > 골드' 카테고리의 다른 글

[백준 1405번] 미친 로봇 (C++)  (0) 2025.04.27
[백준 1484번] 다이어트 (C++)  (0) 2025.04.25
[백준 1456번] 거의 소수 (C++)  (0) 2025.04.17
[백준 1052번] 물병 (C++)  (0) 2025.04.12
[백준 1016번] 제곱 ㄴㄴ 수 (C++)  (0) 2025.04.10
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함