목록전체 글 (86)
undefined

문제 설명 순서 비교를 위하여 초기위치를 키값으로 배정한다. 배열의 가장 앞 요소와 나머지 요소들을 비교하여 큰 값이 존재한다면 배열의 맨뒤로 보내고 자신이 가장 크다면 printed 카운트(프린트 된 순서)를 1씩 올려준다. 이 때 키 값이 location과 같다면 printed를 리턴 문제 풀이 function solution(priorities, location) { let objArr = [] let printed= 0 for(let i =0; i 0) { let shifted = objArr.shift() if(objArr.some(item => item.value > shifted.value)){ objArr.push(shifted) } else { printed++ if(shifted.key..

문제 설명 dfs개념 활용 dfs = 깊이우선탐색 하나의 노드를 다 돈 후에 마지막에 실행된 스택을 지우고 인접한 상위 노드를 방문한다. 이 문제의 예로 보자면 +를 다돈 후 +트리의 마지막 부터 -로 갈라짐 또 - 에는 +와 -가 있음. ex) +++++ ++++- +++-+ +++-- . . 문제 풀이 function solution(numbers, target) { let answer = 0 dfs(0,0) function dfs (index,sum) { if(index === numbers.length) { if(sum === target) { answer++ } return } dfs(index+1,sum+numbers[index]) dfs(index+1,sum-numbers[index]) } ..

문제 설명 skill을 포함하는 것만 남기고 Index로 비교 문제 풀이 const isSorted = arr => { for(let i =0; i { let skillIndex = Array.from(skillTree).filter(s=>skill.includes(s)).map(s=>skill.indexOf(s)) if(isSorted(skillIndex)) answer+=1 }) return answer } 1. arr의 요소의 값이 해당 인..

문제 설명 문제 풀이 function solution(progresses, speeds) { const answer = [] const rest = progresses.map((e,i)=>{ return Math.ceil((100-e)/speeds[i]) }) let maxRest = rest[0] let count = 1 for(let i=1;i=rest[i]) { count++ } else{ maxRest = rest[i] answer.push(count) count=1 } } answer.push(count) return answer } 1. 잔업률을 구한다. 이때 잔업량이 소수점인 경우 다음 날 완료 되기 때문에 Math.ceil로 반올림 해준다. 2. 비교를 위해 가장 큰 잔업량을 rest[0]..
1. 오류 경계란? - 오류가 일어났을 때 웹사이트를 중지시키지 않고 에러관리를 할 수 있도록함. - 기본 자바스크립트 try and catch와 유사함 - 일종의 컴포넌트 - 함수형 컴포넌트에서는 이용이 불가하므로 class 컴포넌트로 사용되야함. 2. 사용 이유? - 자바스크립트의 try and catch를 이용한다면 물론 오류 관리가 되겠지만 그 범위는 해당 컴포넌트에 국한됨. - 오류경계 컴포넌트로 관리하고 싶은 컴포넌트를 감싸준다면 하위트리에 있는 모든 오류를 관리 가능하게함. 3. 사용 방법 (1). import Component import {Component} from 'react' (2). class 컴포넌트 생성 class ErrorBoundary extends Component { c..

문제 설명 // 신고횟수 제한 X // 동일유저신고 1회로 // k번신고되면 정지 // 취합후 마지막에 한꺼번에 정지 // 정지메일 발송횟수 리턴 문제 풀이 function solution(id_list, reports, k) { const reportCount = new Array(id_list.length).fill(0) const reportList = {} id_list.map(id=>{ reportList[id] = [] }) for(let report of reports) { const [userId,reportedId] =report.split(' ') if(!reportList[reportedId].includes(userId)){ reportList[reportedId].push(user..