프로그래밍/백준

[알고리즘] 백준 25495 파이썬 - 에어팟

매 석 2022. 10. 9. 16:13
반응형

문제

에어팟에 여러 개의 핸드폰을 다음과 같은 방법으로 연결하고자 한다.

  • 에어팟은 한 번에 하나의 핸드폰에만 연결이 가능하다.
  • 에어팟을 새로운 핸드폰에 연결할 때마다, 기존 핸드폰과의 연결이 끊어지고, 에어팟 배터리 2퍼센트를 소모한다.
  • 이미 연결되어 있는 핸드폰에 다시 연결을 시도할 때, 직전 배터리 소모량의 2배만큼 배터리를 소모하게 된다.
  • 누적 배터리 소모량이 100퍼센트 이상이 될 경우, 에어팟을 충전시켜야 하기 때문에 현재 핸드폰과 에어팟의 연결을 해제한다. 이 경우 에어팟의 배터리 소모량은 0이 되고, 다음 핸드폰부터는 새로운 에어팟에 연결한다.

핸드폰의 종류는 1부터 9 사이의 숫자로 나타내어지고, 에어팟에 연결한 순서대로 주어진다. 에어팟을 핸드폰에 연결한 횟수 N과 각 차례에 연결한 핸드폰 종류 Ai가 주어질 때, 현재 에어팟 배터리의 소모량을 퍼센트 단위로 출력하시오.

 

문제풀이

n = int(input())
List = list(map(int,input().split()))
Next = -1 #다음값
battery = 0 #현재 배터리 사용량
y=1 #연속 사용량
for i in range(n):
    if(List[i]!=Next):
        battery+=2
        y=2
    else:
        battery += 2*y
        y *= 2
    Next=List[i]
    if(battery>=100):
        battery=0
        Next =-1
        y=1
print(battery)

- 현재값과 다음값이 같지 않으면 배터리에 2를 더하고 연속 사용량을 2로 바꾼다.

- 현재값과 다음값이 같으면 배터리에 2*연속 사용량을 더하고 연속 사용량에 2를 곱한다.

- 만약 배터리가 100을 넘으면 3개의 값을 모두 초기값으로 바꿔준다.