햄버거 만들기 | 프로그래머스

Bluewave·2024년 9월 9일

코테공부_java

목록 보기
68/99

문제

✔ 문제 바로가기

문제레벨정답률
햄버거 만들기Lv.154%

My Code

import java.util.*;

class Solution {
    public int solution(int[] ingredient) {
        int answer = 0;
        
        Stack<Integer> stack = new Stack<>();
        for(int n : ingredient){
            stack.push(n);
            
            if(stack.size() >= 4){
                if(stack.get(stack.size()-1) == 1
                  && stack.get(stack.size()-2) == 3
                  && stack.get(stack.size()-3) == 2
                  && stack.get(stack.size()-4) == 1){
                    for(int i = 0; i<4; i++){
                        stack.pop();
                    }
                    answer++;
                }
            }
        }
        return answer;
    }
}

stack을 사용하긴 했지만 stack의 특성을 활용하진 않은 코드,,^
stack에 일단 push 해주고 크기가 4이상이면 get 메서드로 뒤에서부터 4개를 가져와서 맞는지 check 해준다.
그리고 순서대로 들어와있다면 pop!

그런데 알고보니 get 메서드는 Stack 클래스에서 정의되는 메서드가 아니라고 함


Stack의 get 메서드

get 메서드는 Vector에서 상속된 메서드
ㄴ Stack이 Vector 클래스를 상속받음
ㄴ 후입선출 구조 따르지 않음

사실상 get을 쓸거면 stack을 쓸 필요가 없을 것 같긴 하다.

profile
Developer's Logbook

0개의 댓글