inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Giới thiệu về giải quyết vấn đề thuật toán JavaScript (chuẩn bị cho bài kiểm tra mã hóa)

7. Thiết kế chương trình giảng dạy (Q)

제 솔루션도 확인해주실수 있나요?

315

skwodhkswkd

1 câu hỏi đã được viết

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
안녕하세요 강의 잘 보고 왔습니다.
저는 이 문제를 큐가 아닌 스택으로 풀었습니다.
강사님의 솔루션과 비교하자면
제 코드는 처음에 reverse() 연산이 한 번 들어가지만
shift() 연산이 모두 pop()으로 변해서 데이터의 크기가 커질수록
더 좋은 성능을 보일 거 같은데 맞나요?
shift()연산이 앞의 원소 하나빼고 뒤에 있는 원소들을 한칸씩 땡기는 개념이라 한 번의 shift()가 O(N)이 걸린다해서 가급적이면 큐를 직접 구현하는 방법이 아니면 스택을 사용할 수 있으면 사용하는게 낫다고 배워서요
 
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';
}

코테 준비 같이 해요! javascript

Câu trả lời 2

1

dkfmwpsxm

Js에서는 배열로 큐를 쓰는게 어떤건지 잘모르겟지만

일단 shift연산시 다 땡겨오는 개념이라면 작성자님 처럼 만들면 성능향상에 좋겟죠 

하지만 원형큐라면 별상관없겟죠

Js배열이라는게 링크드 리스트로 되잇다면 마찬가지로 별 상관없을겁니다

이런 고민을하고 코드를 짜보는건 매우 좋은 행동이라고 생각합니다

하나배우면 이러케 저러케 만들어보면 실력 쑥쑥 성장하실거에요 멋집니다 파이팅 

 

0

highJoon

저도 이 고민이 들어서 스택으로 바꿔서 풀어봤는데, 같은 고민을 하신 분이 계셨네요.

저는 이렇게 풀어봤습니다.

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

 

0

savv3279

split과 reverse에서 시간복잡도가 shift보다 많이나왔을거 같은데요

continue를 사용하는 이유

0

102

2

정렬 가능 여부 판단하기

0

81

2

알고리즘 학습법 관련해서 질문드립니다.

0

96

1

코드 리뷰 부탁드립니다!

0

107

1

indexOf를 사용해서 풀어보았습니다 !!

0

76

1

저는 이런식으로 구현 해보았습니다 !!

0

69

1

12,13,14 강의 소리만 나오고 검은 화면입니다

0

110

3

반복문 최소화하고 indexOf 사용해서 풀어봤습니다

0

74

1

영상 보기 전에 직접 풀어봤습니다.

0

79

1

섹션1의 17번문제 이 풀이로 풀어도 될까요?

0

144

2

정규표현식으로 처리해도 상관없나요 ?

0

128

2

3칸씩 건너뛸 수 있을 경우

0

133

2

강의에 대해 질문있습니다.

0

144

2

Object와 Set을 이용해 풀어봤습니다.

0

129

2

이렇게 해도 되나요?

0

109

2

선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.

0

149

2

이렇게 풀어도 괜찮을까요?

0

146

1

이렇게 풀어도 괜찮을까요?

0

125

1

모든 아나그램 찾기에서 시간복잡도

0

106

1

코드리뷰 부탁드립니다.

0

140

1

for loop 탈출은 return 문으로 해도 되지 않나요?

0

136

1

투포인트알고리즘으로 풀어봤습니다.

0

148

0

코드 리뷰 부탁드립니다.

0

121

1

코드 맞게 작성한 거 아닌가여??

0

150

1