목록Coding Test (61)
undefined

문제 설명 합쳐서 비교하기 위해 문자열로 바꿔서 정렬해주고 sort함수를 이용하여 비교 배열 요소 모두 0일때는 가장 큰 수는 0 이므로 0리턴 문제 풀이 function solution(numbers) { let answer = numbers.map(e=>`${e}`).sort((a,b)=>(b+a)-(a+b)).join('') return answer[0]==='0' ? '0' : answer } 1. numbers요소를 모두 문자로 바꿔준다. 2. 정렬로 (b+a)-(a+b)을 해준다. ==> 문자열이기에 6,10 의경우에 106-610이 된다. 이때 음수라면 안바뀐다. 즉, 2개의 요소를 그냥 더한것(a+b)보다 바꿔서 더한것(b+a)이 크면 순서를 바꾼다. 반대로 그냥 더한것(a+b)이 더 크면..

문제 설명 순서 비교를 위하여 초기위치를 키값으로 배정한다. 배열의 가장 앞 요소와 나머지 요소들을 비교하여 큰 값이 존재한다면 배열의 맨뒤로 보내고 자신이 가장 크다면 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]..

문제 설명 // 신고횟수 제한 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..