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

Lv1. 햄버거 만들기

  • -
728x90
반응형

문제 보기 :  햄버거 만들기

 

프로그래머스

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

programmers.co.kr


문제

  • 정답률 : 54%


작성 코드

from collections import deque
def solution(ingredient):
    answer = 0
    ing = deque(ingredient)
    ing2 = ''
    
    while ing:
        i = ing.popleft()
        ing2+=str(i)
        if i == 1 :
            if ing2[-4:] == '1231':
                ing2 = ing2[:-4]
                answer += 1
    return answer

풀이

정답률은 낮은데 그렇게 어려운 문제는 아닌거같다..
그냥 사람들이 리스트의 시간 복잡도 감옥(a.k.a 지옥)에 갇혀서 못 푼 것 같은 느낌이다. 

deque로 list를 대체하고, pop(0) 대신 popleft()로 맨 앞 원소를 빠르게 불러온다.
그리고 처음엔 나도 리스트에 이걸 append해서 [-4:]를 확인해야하나.. 했는데 (deque는 슬라이싱이 안된다.) 어림도 없지. 바로 시간초과에 걸려버렸다.
그래서 찾은 방법이 문자열이다.

문자열에 str(i)로 더해서 비교하면 바로 비교가 가능해서 작업이 수월했다!

320x100
728x90

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글

Lv2. 소수 찾기  (0) 2024.10.01
Lv2. 큰 수 만들기  (0) 2024.09.30
Lv2. 2개 이하로 다른 비트  (0) 2024.09.28
Lv1. 숫자 짝꿍  (0) 2024.09.28
Lv3. 숫자 게임  (0) 2024.09.26
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.