[프로그래머스] - Level2 스킬트리

YS C·2021년 4월 20일
0

생각한 부분

  1. 제한사항 - 이전 스킬을 스킵하고 다음 스킬을 배울 수 없다.
    예를들어 skill "CBD"가 주어졌을 때, C를 배우지 않으면 B, D는 가능하지 않다.
    BD, B, D => 안되는 경우
    CD => 얘도 안됨...왜? B를 배우지 않고 D를 배울 순 없다.
    CB => 가능한 경우

  2. skill_trees에서 skill에 주어진 알파벳을 제외한 나머지 부분을 어떻게 삭제 할 것인가...?
    => filter와 includes로 새로운 배열을 만들어 해결, 마지막에 join 메써드로 배열을 문자열로...!
    => 나머지 부분을 왜 삭제해야하나...? 순서를 비교하기 위해서 !

  3. skill을 substring 메써드로 앞에서부터 잘라서 새로만든 문자열과 비교...!

내가 쓴 코드

function solution(skill, skill_trees) {
  const toArr = skill.split('')
  let result = 0
  let toStr = ''
  for (let i = 0; i < skill_trees.length; i++) {
    toStr = skill_trees[i].split('').filter(value => toArr.includes(value)).join('')
    if (toStr === skill.substring(0, toStr.length)) {
      result++
    }
  }
  return result
}

0개의 댓글