프로그래머스 - 스킬트리

front_pica·2021년 5월 6일
0
post-thumbnail

문제

풀이과정

  1. skill에 나와있는 문자열과 관계없는 문자는 배제하고 스킬에 있는 문자들만 skillString에
    문자열로 집어넣는다.
  2. 만약 skillString에 문자가 하나도 없다면 그 또한 정답이기 때문에 count를 증가시켜준다.
  3. 그리고 그 걸러진 skillString 문자열에서 주어진 skill과 하나씩 index를 비교해가며
    true false를 반환한다.
  4. 반환된 배열에서 하나라도 false가 있다면 이 스킬트리는 어긋난 스킬트리이므로 배제해 주고 아닌 경우에만 count 증가

코드

function solution(skill, skill_trees) {
  let count = 0;

  for(let i = 0; i < skill_trees.length; i ++) {
    let skillString = "";
    for(let j = 0; j < skill_trees[i].length; j ++) {
      if(skill.indexOf(skill_trees[i][j]) >= 0) {
        skillString += skill_trees[i][j]
      } 
    }

    if(skillString === "") {
          count++
    }    

    let resultArr = skillString.split("").map((item, index)=> {
      return item === skill[index];
    })

    if(resultArr.includes(false)) {
      resultArr = "";
    }

    resultArr.length > 0 && count++;
  }

  return count;
}

나의 풀이와 다른사람의 풀이를 비교해보면 비교적 더 짧게 코드를 짤 수 있었는데 나는 비교를 조금더 많이 한 것 같아 아쉽게 느껴짐.

profile
한걸음씩

0개의 댓글