일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 알고리즘
- 타임어택
- 리덕스
- 회고
- codestates
- 코어 자바스크립트
- til
- 백준
- SQL 고득점 Kit
- 파이썬
- 손에 익히며 배우는 네트워크 첫걸음
- 코드스테이츠
- 자바스크립트
- 렛츠기릿 자바스크립트
- 제로초
- programmers
- Async
- 리액트
- 타입스크립트 올인원
- python
- 정재남
- javascript
- 리트코드
- LeetCode
- 타입스크립트
- 토익
- 4주 프로젝트
- js
- 2주 프로젝트
- 프로그래머스
Archives
- Today
- Total
Jerry
프로그래머스 자바스크립트 - 스킬트리 본문
반응형
Pseudo Code
/*
loop start
2중 루프
바깥 포문은 skill 기준
내부 포문은 skill_trees 기준
skill 각 요소를 기준으로, 각 skill_trees의 해당 skill 요소 위치를 찾아서 빈 배열에 담는다.
loop end
loop start
배열을 다시 탐색하여 각 요소의 idx 순서가 오름차순이면 통과(counting)
그렇지 않으면, 미통과
loop end
return cnt;
종료
*/
Submit Code
function solution(skill, skill_trees) {
let arr = new Array(skill_trees.length).fill('');
for (let y = 0; y < skill.length; y++) {
for (let x = 0; x < skill_trees.length; x++) {
let elementIdx = skill_trees[x].indexOf(skill[y]);
if ( elementIdx > -1) {
arr[x] += elementIdx;
} else {
arr[x] += 'x';
}
}
}
console.log(arr);
let cnt = 0;
for (let i = 0; i < arr.length; i++) {
let flag = 0;
if (arr[i].length !== skill.length) {
for (let j = 0; j < arr[i].length; j++) {
if (arr[i][j] === 'x' && arr[i][j]) break;
}
} else {
for (let j = 0; j < arr[i].length; j++) {
if (arr[i][j] > arr[i][j + 1]) {
flag = 1;
break;
}
}
if (flag === 0) {
cnt += 1;
}
}
}
return cnt;
}
반응형
'Problem Solving > Algorithm 문제 풀기' 카테고리의 다른 글
백준 - 단계별 문제 - 1차원 배열 - node.js / javascript (0) | 2021.07.06 |
---|---|
[프로그래머스 / 자바스크립트] N개의 최소공배수 (0) | 2021.06.18 |
프로그래머스 자바스크립트 - 3진법 뒤집기 (0) | 2021.06.13 |
[프로그래머스 / 자바스크립트]문자열 압축 (0) | 2021.06.10 |
[Programmers] 완주하지 못한 선수 (JavaScript) (0) | 2020.12.20 |