작성
·
227
0
function solution(requiredSubject, curriculum) {
let stack = [...requiredSubject.split('').reverse()];
for (const char of curriculum) {
if (char === stack[stack.length - 1]) {
stack.pop();
if (stack.length === 0) return 'YES';
}
}
return 'NO';
}
답변 2
1
Js에서는 배열로 큐를 쓰는게 어떤건지 잘모르겟지만
일단 shift연산시 다 땡겨오는 개념이라면 작성자님 처럼 만들면 성능향상에 좋겟죠
하지만 원형큐라면 별상관없겟죠
Js배열이라는게 링크드 리스트로 되잇다면 마찬가지로 별 상관없을겁니다
이런 고민을하고 코드를 짜보는건 매우 좋은 행동이라고 생각합니다
하나배우면 이러케 저러케 만들어보면 실력 쑥쑥 성장하실거에요 멋집니다 파이팅
0
저도 이 고민이 들어서 스택으로 바꿔서 풀어봤는데, 같은 고민을 하신 분이 계셨네요.
저는 이렇게 풀어봤습니다.
function solution(need, plan) {
let answer = "YES";
plan = plan.split("").reverse();
for (let x of need) {
while (x !== plan[plan.length - 1]) {
plan.pop();
}
if (!plan.length) {
answer = "NO";
break;
}
}
return answer;
}
console.log(solution("CBA", "CBDAGE")); // YES
console.log(solution("CBA", "CABA")); // YES
console.log(solution("CBA", "CBBDAGE")); // YES
console.log(solution("CBA", "CBDDAB ")); // YES
console.log(solution("CBA", "CBDAGAE")); // YES
console.log(solution("ABC", "BABC")); // YES
split과 reverse에서 시간복잡도가 shift보다 많이나왔을거 같은데요