Meiren

[5일 벼락치기] 프로그래머스 햄버거 만들기(lv.1) 본문

코딩테스트(python)

[5일 벼락치기] 프로그래머스 햄버거 만들기(lv.1)

meiren 2022. 11. 1. 17:11

파이썬 안쓰다가 4개월만에 하려니까 기본 문법부터 다 틀린다. 정신체리

그리고 시간초과해서 .... 노답

 

1. 문제

 

2. 틀린 내 코드

def solution(ingredient):
    answer = 0
    ingrd = ''.join(str(e) for e in ingredient)
    while '1231' in ingrd:
            answer += 1
            ingrd = ingrd.replace('1231','', 1)
            
    return answer

 

 

 

3. 통과한 내 코드

구글링함... pop쓰는 걸 습관화 해야 할 듯

 

 

4. 다른 통과 코드들

def solution(ingredient):
	answer = 0
    s = []
    for i in ingredient:
    	s.append(i)
        if s[-4:] == [1, 2, 3, 1]:
        	answer += 1
            for j in range(4):
            	s.pop()
     return answer
  • list.pop()
    맨 마지막 인자 삭제
  • 특정 수만큼 반복하고자 할 때,
    for i in range(n):
  • stack, slicing, 역순
    list[-n:] == [a, s, d, f]

 

 

 

5. 자잘한 내 실수들

list to str

  • 리스트의 인자가 문자열이 아닌 숫자인 경우, 인자들을 문자로 바꾼 뒤 join 해야한다
''.join(str(e) for e in ingredient)
  • 이를 다시 리스트로 정의해줘야 적용된다.
''.join(str(e) for e in ingredient)
ingredient = ''.join(str(e) for e in ingredient)

 

replace

  • 해당되는 문자 중 첫번째 문자만 교체하고 싶을 때, replace( ,  , 1)
ingredicnt = ingredient('1231', '', 1)