728x90
기울기를 사용한다는 건 생각도 못했다.
그림으로 그려보았다.
건물의 왼쪽은 건물이 보이기 위해서는 기울기가 작아져야하고
건물의 오른쪽은 건물이 보이기 위해서는 기울기가 커져야한다.
이걸 생각만 할 수 있다면 그렇게 어려운 문제는 아니다ㅎㅎ
코드 :
# 원점이 (x1,y1)
def slope(x1,y1,x2,y2) :
return (y2-y1) / (x2-x1)
# 기울기가 작아져야 볼 수 있다.
def count_left(idx) :
min_scope = int(1e9)
cnt= 0
for i in range(idx-1,-1,-1) :
s = slope(idx, mp[idx], i, mp[i])
if min_scope > s :
min_scope = s
cnt+=1
return cnt
# 기울기가 커야 볼 수 있다.
def count_right(idx) :
max_scope = -int(1e9)
cnt = 0
for i in range(idx+1,n) :
s = slope(idx, mp[idx], i, mp[i])
if max_scope < s :
max_scope = s
cnt+=1
return cnt
if __name__=="__main__" :
n = int(input())
mp = list(map(int,input().split()))
ans = 0
for i in range(n) :
left = count_left(i)
right = count_right(i)
ans = max(ans, left+right)
print(ans)
참고 블로그 :
https://one10004.tistory.com/229
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
반응형
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
[Python/백준]12865번_평범한 배낭(DP, 냅색) (0) | 2022.08.06 |
---|---|
[Python/백준]2136 개미 (0) | 2022.08.05 |
[삼성SW역량][Python/BOJ] 백준 21609 상어 중학교(구현) (0) | 2022.08.03 |
[삼성SW역량][Python/BOJ] 백준 20058 마법사 상어와 파이어스톰(구현+BFS) (0) | 2022.08.03 |
[삼성SW역량][Python/BOJ] 백준 17822 원판돌리기(구현) (0) | 2022.08.02 |