1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
def sol(nums):
current_phone=nums[0]
current_battery = 2
accumulate_cnt= 1
for i in range(1, len(nums)):
if current_battery >= 100:
current_phone = 0
current_battery = 0
accumulate_cnt = 1
if current_phone == nums[i]:
accumulate_cnt += 1
current_battery += 2**accumulate_cnt
else :
accumulate_cnt = 1
current_battery +=2
current_phone = nums[i]
if current_battery >= 100:
current_phone = 0
current_battery = 0
accumulate_cnt = 1
print(current_battery)
len_nums=int(input())
sol(list(map(int, input().split())))
|
cs |
이 문제는 현재 베터리 소모량, 현재 핸드폰 위치, 그리고 이전까지 연속으로 같은 핸드폰인지 카운트
이 3가지 변수 구현이 중요하구요
예제 설명이 잘돼있는데
여기서
6
2 2 2 2 2 2
가 나오는 경우를 가정해보면
이 경우에는 베터리 소모량이 126이되서 100퍼센트 이상이기때문에 현재 에어팟은 새로운 에어팟으로 교체 되야하므로
베터리 소모량이 0 이 됩니다.
이정도 예외 상황 빼고는 크게 어렵지 않네요
반응형
'python-algorithm' 카테고리의 다른 글
백준 25558 내비게이션 (0) | 2022.09.26 |
---|---|
백준 25576 찾았다 악질 (0) | 2022.09.24 |
leetcode 2413. Smallest Even Multiple (0) | 2022.09.22 |
leetcode 557. Reverse Words in a String III (0) | 2022.09.22 |
백준 25625 샤틀버스 (0) | 2022.09.22 |
댓글