풀이
- 처음에는 check에 추가하기 전
- [1,2,3,1] 각 요소에 하나씩 접근해서 맞는지 확인하는 작업을 해서 풀었더니
- 시간초과가 발생하여서
- stack을 사용해서 마지막 값과 같은지 확인하여 풀었더니 해결
해결코드
def solution(ingredient):
result = 0
check = []
for i in ingredient:
check.append(i)
if check[-4:] == [1,2,3,1]:
result += 1
del check[-4:]
return result
시간초과 코드
def solution(ingredient):
result = 0
while True:
cnt = 0
check = []
for i in range(len(ingredient)):
if ingredient[i] == li[cnt]:
cnt += 1
check.append(i)
if cnt == 4: break
elif ingredient[i] == li[0]:
cnt = 1
check = [i]
elif check == []: continue
else:
cnt = 0
check.clear()
if cnt == 4:
for i in range(4): ingredient.pop(check[i]-i)
result += 1
else: break
return result
'알고리즘' 카테고리의 다른 글
[프로그래머스, 파이썬] 주사위 게임 3 (0) | 2024.02.21 |
---|---|
[프로그래머스, 파이썬] 안전지대 (0) | 2024.02.21 |
[프로그래머스, 파이썬] 바탕화면 정리 (0) | 2024.02.20 |
[프로그래머스, 파이썬] 겹치는 선분의 길이 (0) | 2024.02.20 |
[프로그래머스, 파이썬] 달리기 경주 (0) | 2024.02.19 |