반응형
HashMap으로 판매자들을 number 로 변경, 그 후 배열로 부모 관계 데이터 표현
DFS 상위에 판매결과값 전달.
const hash = new Map();
var edge;
var answer;
const DFS = (num, money)=> {
const next = edge[num];
const nextMoney = Math.floor(money * 0.1);
const currentMoeny = money - nextMoney;
answer[num] += currentMoeny;
if(next !== null && nextMoney!== 0)
DFS(next, nextMoney);
}
function solution(enroll, referral, seller, amount) {
const len = enroll.length;
for(let i=0;i<len;i++) {
hash.set(enroll[i], i);
}
edge = Array(len);
for(let i=0;i<len;i++) {
const ref = referral[i];
if(ref === '-'){
edge[i] = null;
continue;
}
const num = hash.get(ref);
edge[i] = num;
}
answer = Array(len).fill(0);
const sellerCnt = seller.length;
for(let i=0; i< sellerCnt; i++) {
const sellerNum = hash.get(seller[i]);
const money = amount[i] * 100;
// 가격 계산 DFS
DFS(sellerNum, money);
}
return answer;
}
반응형
'ProgramSoliving' 카테고리의 다른 글
프로그래머스: 위클리코드 3주차 (퍼즐조각 채우기) (0) | 2021.08.20 |
---|---|
프로그래머스 : 보석 쇼핑 (0) | 2021.08.03 |
프로그래머스 : 표 편집 (JavaScript) (0) | 2021.08.03 |
프로그래머스 : 블록게임 JavaScript (0) | 2021.07.02 |
프로그래머스 : 동굴탐험 JavaScript (0) | 2021.07.01 |