• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

풀이 질문드립니다!

21.07.26 18:52 작성 조회수 116

0

function solution(need, plan) {
    let answer = 'YES';
    const queue = [];

    for (s of plan) {
        if (need.includes(s)) queue.push(s);
    }

    if (!queue.join('').includes(need)) answer = 'NO';

    return answer;
}

const need = 'CBA';
const plan = 'CBDAGE';
console.log(solution(need, plan));

이런식으로 풀이해 보았는데 혹시 예외에 걸릴만한 사항이 있을까요...? 

답변 1

답변을 작성해보세요.

0

안녕하세요^^

잘 하신 코드입니다. 

다만 제가 문제를 만들 때 의도는 아래 입력설명 처럼 

입력설명

첫 줄에 한 줄에 필수과목의 순서가 주어집니다. 모든 과목은 영문 대문자입니다.

두 번 째 줄부터 현수가 짠 수업설계가 주어집니다.(수업설계의 길이는 30이하이다)

수업설계이 길이를 30이하라고 한 것은 대문자는 26개 이니까 같은 문자가 수업설계에서 존재할 수 있다라는 의미를 전달하기 위해서였습니다. 즉 아래와 같은 입력도 존재할 수 있습니다.

const need = 'CBA';
const plan = 'CBBDAGE';

이런 경우도 YES가 나와야 합니다. 필수과목을 순서대로 이수했고, 빼먹은 것도 없으니까요.

좀 억지스러울수도 있지만 제가 문제를 만들때의 의도는 그랬습니다. 이런 입력예를 문제에서 보여줬다면 더 좋았을 걸 그랬습니다.