반응형
https://school.programmers.co.kr/learn/courses/30/lessons/133502
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
레벨 1이지만 여전히 안되는 군요!
실무를 하는 사람으로서 많이 부끄러워지기도 하면서 또 더 배워 갈 수 있어 기쁘기도 합니다
아무튼!
햄버거를 만드는 문제인데, [빵, 야채, 고기, 빵] 순서가 되었을 때 햄버거 1개를 만들 수 있다고 합니다.
[빵, 빵, 야채, 고기, 빵, 야채, 고기, 빵] 이면 2개를 만들 수 있는거죠
그래서 저는 이런 생각을 했습니다.
[빵, 야채, 고기, 빵]이 순서대로 있으면 배열에서 빼고 다시 반복문을 돌린다!
그래서 다음과 같은 코드를 만들었지만 시간초과가 나왔습니다.
def solution(ingredient):
answer = 0
buf = ingredient
isBurger = False
for x in buf:
idx = 0
for i in range(len(buf)):
if buf[i] == 1:
if i+1 < len(buf):
if buf[i+1] == 2:
if i+2 < len(buf):
if buf[i+2] == 3:
if i+3 < len(buf):
if buf[i+3] == 1:
answer += 1
isBurger = True
idx = i
break
else:
break
else:
break
else:
break
if isBurger == True:
del buf[idx:idx+4]
isBurger = False
return answer
정말 단순하게 생각했죠?
방법을 찾다가 deque를 이용하신 분이 있으셔서 가져와 봅니다. (링크)
import를 쓰지 않고 해보려고 한건데 사용하는 것이 확실히 깔끔하고 좋은 것 같습니다..
거기에 아직 파이썬에 대해 잘 알지 못하는 상태라 그런지 더 그런 것 같네요
수정한 코드
def solution(ingredient):
answer = 0
idx = 0
while (idx < len(ingredient)-2):
if ingredient[idx:idx+4] == [1,2,3,1]:
del ingredient[idx:idx+4]
answer += 1
idx -= 5
idx += 1
return answer
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[프로그래머스] 숫자 찾기 - Python (0) | 2023.01.08 |
---|---|
[프로그래머스] 약수 구하기 - Python (0) | 2023.01.05 |
[프로그래머스] 7의 개수 - Python (0) | 2023.01.05 |
프로그래머스 - 다음에 올 숫자(Python3) (0) | 2022.11.10 |
[프로그래머스] 짝꿍 숫자 문제 - Python3 (0) | 2022.10.25 |