백준(BOJ)
[Python/파이썬] - 백준(BOJ) 1027번 : 고층 건물
phanre
2022. 5. 31. 10:24
https://www.acmicpc.net/problem/1027
1027번: 고층 건물
세준시에는 고층 빌딩이 많다. 세준시의 서민 김지민은 가장 많은 고층 빌딩이 보이는 고층 빌딩을 찾으려고 한다. 빌딩은 총 N개가 있는데, 빌딩은 선분으로 나타낸다. i번째 빌딩 (1부터 시작)
www.acmicpc.net
두 건물의 기울기를 이용해 두 건물 사이 선분에 건물이 있는지 확인하면 된다.
def watch(index):
answer = 0
height = build[index]
for i in range(n):
dx = i - index
dy = height - build[i]
if dx != 0:
d = dy/abs(dx)
k = 1
if dx > 0:
k = -1
b = 1
for j in range(i+k, index, k):
if build[j] >= build[i] + d*abs(j-i):
b = 0
break
if b:
answer += 1
return answer
n = int(input())
build = list(map(int,input().split()))
answer = 0
for i in range(n):
answer = max(answer, watch(i))
print(answer)