728x90
문제
정답
처음에 했던 정답은 오답이었습니다.
def solution(ingredient):
answer = 0
ingredientC = "".join(map(str,ingredient))
while "1231" in ingredientC:
answer += ingredientC.count("1231")
ingredientC = ingredientC.replace("1231", "")
return answer
풀이 방법은 맞지만 while문이 돌면서 계속 replace 연산을 함으로 시간이 많이 걸려 시간초과가 떴습니다.
def solution(ingredient):
answer = 0
i = 0
while i != len(ingredient):
if ingredient[i:i+4] == [1, 2, 3, 1]:
answer += 1
del ingredient[i:i+4]
if i - 4 > 0:
i = i - 4
else:
i = 0
else:
i += 1
return answer
따라서 값이 같은 경우 del을 이용하여 배열에서 값을 제거해 주었고, i 라는 변수를 선언하여 배열을 처음부터 다시 시작하는 것이 아닌 현재 위치보다 조금 이전부터 시작하는것으로 바꿈으로써 시간이 적게 걸리도록 하여 문제를 풀었습니다.
728x90
'프로그래머스 코딩테스트 > Python' 카테고리의 다른 글
[프로그래머스] 바탕화면 정리 Python (0) | 2024.07.10 |
---|---|
[프로그래머스] 성격 유형 검사하기 Python (0) | 2024.07.09 |
[프로그래머스] 둘만의 암호 Python (0) | 2024.07.08 |
[프로그래머스] 대충 만든 자판 Python (0) | 2024.07.05 |
[프로그래머스] 문자열 나누기 Python (0) | 2024.07.05 |