반응형
문제
에어팟에 여러 개의 핸드폰을 다음과 같은 방법으로 연결하고자 한다.
- 에어팟은 한 번에 하나의 핸드폰에만 연결이 가능하다.
- 에어팟을 새로운 핸드폰에 연결할 때마다, 기존 핸드폰과의 연결이 끊어지고, 에어팟 배터리 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개의 값을 모두 초기값으로 바꿔준다.
'프로그래밍 > 백준' 카테고리의 다른 글
[알고리즘] 백준 25285 파이썬 - 심준의 병역판정검사 (0) | 2022.10.10 |
---|---|
[알고리즘] 백준 17450 파이썬 - 과자 사기 (0) | 2022.10.09 |
[알고리즘] 백준 14568 파이썬 -2017 연세대학교 프로그래밍 경시대회 (0) | 2022.10.09 |
[백준알고리즘] 백준 25175 파이썬 - 두~~부 두부 두부 (1) | 2022.10.08 |
[백준알고리즘] 백준 25024 파이썬 - 시간과 날짜 (0) | 2022.10.08 |