프론트엔드 개발자 중규리 입니다 ദി ᷇ᵕ ᷆ ) 자세히보기

PS/문제풀이

백준 1027 고층 건물 Python

중규리 2024. 2. 12. 17:54

🐸 문제 정보

 

1027번: 고층 건물

세준시에는 고층 빌딩이 많다. 세준시의 서민 김지민은 가장 많은 고층 빌딩이 보이는 고층 빌딩을 찾으려고 한다. 빌딩은 총 N개가 있는데, 빌딩은 선분으로 나타낸다. i번째 빌딩 (1부터 시작)

www.acmicpc.net

 

🤖 알고리즘

수학

 

⏱️ 풀이 시간

15.12m

 

📝 풀이

단순한 스택 문제라고 생각했는데, 기울기를 비교해야하는 수학 문제였다.

오히려 스택보다 조건 자체는 쉽다.

 

오른쪽으로 이동하면서 이전까지 나왔던 최대 기울기보다 큰 기울기가 나와야만 1개를 추가해준다.

A와 B 빌딩 서로 볼 수 있기 때문에 두 요소 모두 1을 추가해야한다.

이런식으로 모든 요소를 탐색하면 되는 문제였다.

 

🧑‍💻 나의 답

# pypy3

import sys
input = sys.stdin.readline

n = int(input().rstrip())
nums = list(map(int, input().rstrip().split()))
res = [0] * n

for i in range(n - 1):
    temp = -sys.maxsize
    for j in range(i + 1, n):
        if temp < (nums[j] - nums[i]) / (j - i):
            res[i] += 1
            res[j] += 1
            temp = (nums[j] - nums[i]) / (j - i)

print(max(res))

 

'PS > 문제풀이' 카테고리의 다른 글

백준 21314 민겸 수 Python  (2) 2024.02.15
백준 11279 최대 힙 Python  (0) 2024.02.14
백준 1342 행운의 문자열 Python  (1) 2024.02.12
백준 17141 연구소 2 Python  (0) 2024.02.12
백준 2839 설탕 배달 Python  (0) 2024.02.12