[프로그래머스 level2] 순위 검색(효율성 미통과)
문제
https://programmers.co.kr/learn/courses/30/lessons/72412
문제 풀이
코드1(정확성100, 효율성0)
function solution(info, query) {
const answer=[];
for(let i=0; i<info.length; i++){
info[i]=info[i].split(' ');
}
for(let j=0; j<query.length; j++){
query[j]=query[j].split(' and ').join(' ').split(' ');
let cnt=0;
for(let l=0; l<info.length; l++){
let tmp=0
for(let k=0; k<5; k++){
if(k===4 && Number(query[j][4])<=Number(info[l][4])){
tmp++;
break;
}
else if(k===4) continue;
if(query[j][k]===info[l][k] || query[j][k]==='-') tmp++;
else break;
}
if(tmp===5) cnt++;
}
answer.push(cnt);
}
return answer;
}
단순하게 for문을 통해 비교해고, 조건과 같으면 cnt를 늘려주는 방식으로 풀어줬다. 하지만 삼중 for문이기 때문에 정확성은 100점이지만 효율성 테스트가 완전 0점... 효율성 빡시다💩
다른 방식으로 풀어야한다!
카카오 페이지에서 보니 무려 정답률이 정확성 44.07%, 효율성 4.49%인 문제였다! 효율성 진짜 극악의 문제였나보다... 문제에서도 '본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.'라고 각잡고 써있었다.
효율성 테스트의 경우 주어진 시간 내에 실행이 완료되어야 하므로, 최적화된 구현 방법을 고민할 필요가 있습니다.
코드2(효율성 통과를 위해!)
Author And Source
이 문제에 관하여([프로그래머스 level2] 순위 검색(효율성 미통과)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@rladpwl0512/프로그래머스-level2-순위-검색저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)