-
[CodeKata] 데일리 프로그래머스 : 2.27(토), 순위 검색Algorithm 2021. 2. 27. 18:18반응형
🥋 Ooooth!! (Level 2)
🧮 풀이
function solution(info, query) { let answer = [] info = info.map(e => e.split(' ')) query = query.map(e => e.split(' ').filter(f => f !== 'and')) for (let q of query) { let nowInfo = info.filter(e => Number(e[4]) >= Number(q[4])); for (let i = 0 ; i < q.length-1 ; i++) { if (q[i] !== '-') { nowInfo = nowInfo.filter(e => e[i] === q[i]) } } answer.push(nowInfo.length) } return answer; }
- count
🖇 리뷰
function solution(people, limit) { let count = 0; let pairPeople = people.sort((a,b) => b-a).filter(person => person <= limit - people[people.length-1]) count += people.length - pairPeople.length while (pairPeople.length !== 0) { // 이전 풀이 const a = pairPeople.pop(); const b = pairPeople.findIndex(person => person <= limit - a); if (b !== -1) { pairPeople.splice(b,1); } count++ } return count; }
처음에는, 뒤에서 최소값을 빼고 앞에서부터 findIndex 조건을 통해, 만족하는 요소를 splice하는 로직이었다.
이 풀이는, 정확성 테스트는 통과했지만, 효율성 테스트는 1번에서 실패가 나왔다. (다들, 여기가 마의 구간인듯..)
아마, 최종 풀이는 배열 끝요소만 확인한 뒤 빼는 거라면, 이 풀이는 배열 전체적으로 findIndex하고 또 이를 변수에 할당하는 차이 때문인듯하다.
반응형'Algorithm' 카테고리의 다른 글
[CodeKata] 프로그래머스 : 3.2(화), 가장 큰 정사각형 찾기 (0) 2021.03.02 [CodeKata] 프로그래머스 : 3.1(월), 쿼드압축 후 개수 (0) 2021.03.01 [CodeKata] 프로그래머스 : 2.26(금), 타겟 넘버, 카펫 (0) 2021.02.26 [CodeKata] 프로그래머스 : 2.25(목), 구명보트 (0) 2021.02.25 [CodeKata] 프로그래머스 : 2.24(수), 위장 (0) 2021.02.24