본문 바로가기
Algorithm/etc

[파이썬] 백준 22945 : 팀 빌딩 (골드4)

by 베짱이28호 2023. 12. 12.

[파이썬] 백준 22945 : 팀 빌딩 (골드4)

 

22945번: 팀 빌딩

개발자 $N$명이 팀 빌딩을 위해 한 줄로 서있다. 하나의 팀을 만들기 위해서는 개발자 2명이 반드시 모여야 한다. 개발자 A와 개발자 B가 팀을 만들 때 팀의 능력치는 아래와 같이 계산이 된다. (개

www.acmicpc.net


문제


풀이

방향성 생각

  • 구간 양 끝을 잡고 점수를 점수를 계산한다.
  • 포인터를 작은쪽을 변경시켜야  더 높은 점수를 얻을 수 있는 가능성이 생긴다.
  • 왼쪽 포인터의 값이 크면 오른쪽 포인터를 감소시키고, 그 반대의 경우는 왼쪽 포인터를 감소시킨다.

전체코드

n = int(input())
info = list(map(int,input().split()))

l,r = 0,n-1
answer = (n-2)*min(info[0],info[-1])

while l!=r:
    if info[l] >= info[r]:
        answer = max(answer,info[r]*(r-1-l))
        r -= 1
    else:
        answer = max(answer,info[l]*(r-1-l))
        l += 1
print(answer)

 

코멘트

.

댓글