Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 프로그래머스
- 토이프로젝트
- 우아한테크코스
- ES6
- 우아한테크캠프
- Hello Coding HTML5+CSS3
- 코드스쿼드
- 자바
- AWS
- 리액트
- html
- 우아한테크캠프 4기
- 함수
- 러닝 자바스크립트
- npm
- toast
- 우아한형제들
- CSS
- 회고의 회고
- 레인지 슬라이더
- 주간 회고
- 네이버 테크 콘서트
- 토이 프로젝트
- 자바스크립트
- 인사이드 자바스크립트
- 개인 프로젝트
- 자바스크립트 객체
- express
- 모듈 배포하기
- 알고리즘
Archives
- Today
- Total
블로그
[프로그래머스, 자바스크립트] 알고리즘-46 스킬트리 본문
출처 : 프로그래머스 알고리즘 코딩테스트 Level.2
https://programmers.co.kr/learn/courses/30/lessons/49993?language=javascript
풀이 과정
순서대로 스킬을 습득하여야한다.
그러려면 선행 스킬은 후행 스킬보다 언제나 앞에 있어야함을 유의한다.
indexOf를 사용하여 선행 스킬의 index보다 후행 스킬의 index값이 높은 지를 비교하였다.
이 경우 선행스킬이 없을 때, indexOf는 -1을 반환하는 점을 고려하여 조건문을 작성했다.
답안
function solution(skill, skill_trees) {
let result = 0;
const skill_length = skill.length;
const tree_length = skill_trees.length;
for (let i = 0; i < tree_length; i += 1) {
let check = true;
const target = skill_trees[i];
for (let j = 0; j < skill_length - 1; j += 1) {
const now = target.indexOf(skill[j]);
const next = target.indexOf(skill[j + 1])
if (next !== -1 && now > next || now === -1 && next !== -1) {
check = false;
break;
}
}
result += check ? 1 : 0;
}
return result;
}
'알고리즘' 카테고리의 다른 글
[프로그래머스, 자바스크립트] 알고리즘-45 기능개발 (0) | 2020.01.07 |
---|---|
[프로그래머스, 자바스크립트] 알고리즘-44 다리를 지나는 트럭 (0) | 2020.01.06 |
[프로그래머스, 자바스크립트] 알고리즘-43 최댓값과 최솟값 (0) | 2020.01.04 |
[프로그래머스, 자바스크립트] 알고리즘-42 쇠막대기 (0) | 2020.01.04 |
[프로그래머스, 자바스크립트] 알고리즘-41 124 나라의 숫자 (0) | 2020.01.04 |
Comments