티스토리 뷰
2022.11.29
프로그래머스 스쿨 Lv01. 햄버거 만들기
🚀 문제 파악
* 조리된 순서를 지켜 재료를 아래에서부터 위로 쌓는다
* 정해진 순서(빵-야채-고기-빵)로 쌓인 햄버거만 포장 가능
* 햄버거의 높이는 제한없음
예를들어
* 재료가 순서대로
* 야채,빵,빵,야채,고기,빵,야채,고기,빵
** 3~6까지 햄버거 1개
* 야채,빵,빵,야채,고기,빵,야채,고기,빵
** 2, 7~9까지 햄버거 1개 (이미 사용된 재료 제외)
* 총 2개의 햄버거 포장 가능
🚀 문제 해결 방법(1) 스택 활용, 뒤에서부터 확인하기 + splice()
1. ingredient의 값을 순서대로 stack에 push
2. stack.length가 4보다 크거나 같을 때, 뒤에서부터 recipe 와 비교
2-1. 비교했을 때 recipe와 동일하면
*해당 부분 splice해서 없애주기
2-2. 비교했을 때 recipe와 다르면
*다시 push 시작
function solution(ingredient) {
var answer = 0;
var recipe = '1,2,3,1';
var stack = [];
ingredient.forEach( (item,idx) => {
stack.push(item);
if(stack.length >= 4 && stack.slice(-4).join() == recipe){
answer++;
stack.splice(0,idx-1);
}
});
return answer;
}
🚀 문제 해결 방법(2) 스택 활용, 뒤에서부터 확인하기 + pop() 4번 하기
1. ingredient의 값을 순서대로 stack에 push
2. stack.length가 4보다 크거나 같을 때, 뒤에서부터 recipe 와 비교
2-1. 비교했을 때 recipe와 동일하면
*해당 부분 pop해서 없애주기
2-2. 비교했을 때 recipe와 다르면
*다시 push 시작
function solution(ingredient) {
var answer = 0;
var recipe = '1,2,3,1';
var stack = [];
ingredient.forEach( (item,idx) => {
stack.push(item);
if(stack.length >= 4 && stack.slice(-4).join() == recipe){
answer++;
stack.splice(0,idx-1);
}
});
return answer;
}
💬 단순하게 문제 해결할 수 있는 방법도 많ㄷ ㅏ.. 😂
'🔥 해보자고 🔥' 카테고리의 다른 글
프로그래머스 스쿨 Lv01. 콜라 문제 (0) | 2022.12.01 |
---|---|
프로그래머스 스쿨 Lv01. 성격유형검사하기 (0) | 2022.11.30 |
프로그래머스 스쿨 Lv01. 명예의 전당(1) (0) | 2022.11.28 |
프로그래머스 스쿨 Lv01. 푸드 파이트 대회 (0) | 2022.11.25 |
프로그래머스 스쿨 Lv01. 과일 장수 (0) | 2022.11.24 |
댓글