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)
'백준(BOJ)' 카테고리의 다른 글
[Python/파이썬] - 백준(BOJ) 3709번 : 레이저빔은 어디로 (0) | 2022.06.03 |
---|---|
[Python/파이썬] - 백준(BOJ) 1025번 : 제곱수 찾기 (0) | 2022.05.31 |
[Python/파이썬] - 백준(BOJ) 1781번 : 컵라면 (0) | 2022.05.28 |
[Java/자바] - 백준(BOJ) 1068번 : 트리 (0) | 2022.05.26 |
[Python/파이썬] - 백준(BOJ) 1092번 : 배 (0) | 2022.05.26 |