https://school.programmers.co.kr/learn/courses/30/lessons/152996
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
알고리즘 : 자료구조, 시간복잡도
처음에 시간복잡도를 생각하지 못해서 계속 시간초과가 발생했다.
항상 array를 사용해서 문제를 많이 풀고 있는데 객체를 사용해서 시간복잡도를 줄일 수 있었다.
경우의 수 계산 중 괄호의 위치가 계속 틀려서... 3번의 도전만에 풀었다 ㅜㅜ
function solution(weights) {
let cal = [3/2,2,4/3];
let store ={};
let ans =0;
for(let i=0;i<weights.length;i++){
if(!store[weights[i]]) store[weights[i]]=1;
else store[weights[i]]++;
}
for(let num in store){
if(store[num]>=1) ans+= store[num]*(store[num]-1)/2;
for(let j=0;j<cal.length;j++){
let temp = +num*cal[j];
if(store[temp]!==undefined) {
ans+=store[temp]*store[num];
}
}
}
return ans;
}
'코딩테스트(알고리즘) > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 연속 부분 수열 합의 개수 (Javascript) (0) | 2023.02.21 |
---|---|
[프로그래머스] 테이블 해시 함수 (Javascript) (0) | 2023.02.13 |
[프로그래머스] 마법의 엘리베이터 (Javascript) (0) | 2023.02.12 |
[프로그래머스] 이모티콘 할인행사 (Javascript) (0) | 2023.02.10 |
[프로그래머스] 택배 배달과 수거하기 (Javascript) (0) | 2023.02.10 |