https://school.programmers.co.kr/learn/courses/30/lessons/49993
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(skill, skill_trees) {
var answer = 0;
skill_trees.forEach((skilltree)=>{
let possible = true;
let queue = [...skill]
for(let x of skilltree){
if(skill.includes(x) && x === queue[0]) queue.shift()
else if(skill.includes(x) && x !== queue[0]) {
console.log(skilltree, x, queue[0])
possible = false;
break;
}
}
if(possible) {
answer++
}
})
return answer;
}
입출력 예
skill | skill_trees | return |
"CBD" | ["BACDE", "CBADF", "AECB", "BDA"] | 2 |
위의 입출력 예로 설명하고자 한다
queue에 skill (CBD)을 담은 후, skill이 skill_trees의 x (B)를 포함하고 순서가 일치하면
queue에 담긴 첫번째 요소 (C)를 제거하고, 다음 요소 (B)랑 비교하게끔 queue.shift()를 사용했다
skill이 x를 포함하지만, 순서가 일치하지 않는 경우 (BACDE,BDA)는 불가능한 스킬트리이므로
true가 할당돼있는 변수 possible을 false로 바꿔준다
나머지 x는 비교할 필요가 없으므로 break
즉, 배열 skill_trees 각각의 요소를 순회한후 possible이 true이면 answer를 1 증가한다.
'algorithm' 카테고리의 다른 글
약수의 개수와 덧셈 (feat. 제곱수 활용) (0) | 2023.12.19 |
---|---|
튜플 (0) | 2023.09.27 |
구명보트 (0) | 2023.09.25 |
문자열 내 마음대로 정렬하기 (feat. JS sort 함수) (0) | 2023.09.05 |
JadenCase 문자열 만들기 (0) | 2023.08.28 |
https://school.programmers.co.kr/learn/courses/30/lessons/49993
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(skill, skill_trees) {
var answer = 0;
skill_trees.forEach((skilltree)=>{
let possible = true;
let queue = [...skill]
for(let x of skilltree){
if(skill.includes(x) && x === queue[0]) queue.shift()
else if(skill.includes(x) && x !== queue[0]) {
console.log(skilltree, x, queue[0])
possible = false;
break;
}
}
if(possible) {
answer++
}
})
return answer;
}
입출력 예
skill | skill_trees | return |
"CBD" | ["BACDE", "CBADF", "AECB", "BDA"] | 2 |
위의 입출력 예로 설명하고자 한다
queue에 skill (CBD)을 담은 후, skill이 skill_trees의 x (B)를 포함하고 순서가 일치하면
queue에 담긴 첫번째 요소 (C)를 제거하고, 다음 요소 (B)랑 비교하게끔 queue.shift()를 사용했다
skill이 x를 포함하지만, 순서가 일치하지 않는 경우 (BACDE,BDA)는 불가능한 스킬트리이므로
true가 할당돼있는 변수 possible을 false로 바꿔준다
나머지 x는 비교할 필요가 없으므로 break
즉, 배열 skill_trees 각각의 요소를 순회한후 possible이 true이면 answer를 1 증가한다.
'algorithm' 카테고리의 다른 글
약수의 개수와 덧셈 (feat. 제곱수 활용) (0) | 2023.12.19 |
---|---|
튜플 (0) | 2023.09.27 |
구명보트 (0) | 2023.09.25 |
문자열 내 마음대로 정렬하기 (feat. JS sort 함수) (0) | 2023.09.05 |
JadenCase 문자열 만들기 (0) | 2023.08.28 |