💬 문제
[코딩테스트 연습 - 햄버거 만들기](https://school.programmers.co.kr/learn/courses/30/lessons/133502)
💬 Idea
- 처음에는 문자열로 접근해서 “1231”이 포함되어있다면 해당 1231을 지우고 count를 올려주는 방식을 사용했는데,
123123111231 → 이러한 경우가 생겨 문제에서 나타난 풀이방법과 달라져 버렸다.. - 따라서 Stack을 사용하여 앞 재료부터 햄버거를 쌓을 수 있도록 풀이방법을 바꿔 해결할 수 있었다.
💬 풀이
func solution(ingredient:[Int])->Int{varingredient= ingredient
varresult=0varhamburger:[Int]=[]foriin0..<ingredient.count {
hamburger.append(ingredient[i])if hamburger.count >=4{letindex= hamburger.count -1ifhamburger[index]==1 && hamburger[index -1]==3 && hamburger[index -2]==2 && hamburger[index -3]==1{
result +=1
hamburger.removeLast(4)}}}return result
}
💬 더 나은 방법?
func solution(ingredient:[Int])->Int{varingredient= ingredient
varresult=0varhamburger:[Int]=[]foriin0..<ingredient.count {
hamburger.append(ingredient[i])if hamburger.count >=4{if hamburger.suffix(4)==[1,2,3,1]{
result +=1
hamburger.removeLast(4)}}}return result
}
💬 문제[코딩테스트 연습 - 햄버거 만들기](https://school.programmers.co.kr/learn/courses/30/lessons/133502)
💬 Idea123123111231 → 이러한 경우가 생겨 문제에서 나타난 풀이방법과 달라져 버렸다..
💬 풀이💬 더 나은 방법?