프로그래머스 코딩테스트/Python

[프로그래머스] 햄버거 만들기 Python

Coding-Su 2024. 7. 9. 20:55
728x90

문제

[프로그래머스] 햄버거 만들기

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

정답

처음에 했던 정답은 오답이었습니다.

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