Skip to content

[Algorithm] 햄버거 만들기 #70

Description

@hwangJi-dev

💬 문제

[코딩테스트 연습 - 햄버거 만들기](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
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions