Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Synchronization
- 세마포어와 뮤텍스
- 서버 호스팅
- 세마포어
- Dijkstra Algorithm
- 다익스트라
- 최단 경로
- 클라우드 서버
- 싸피 면접 후기
- 플로이드 워셜
- 뮤텍스란?
- Proxy
- 호스팅이란?
- SSAFY
- 프록시서버
- 호스팅
- 프록시
- 세마포어와 뮤텍스의 차이
- 싸피
- 다익스트라 알고리즘
- 동기화
- 싸피 합격
- 뮤텍스
- floyd-warshall
- 웹 호스팅
- Proxy Server
- 삼성 청년 SW 아카데미
- 플로이드 와샬
- 세마포어란?
Archives
- Today
- Total
어제의 나보다 성장한 오늘의 나
[프로그래머스][2021 Dev-Matching][자바스크립트] 다단계 칫솔 판매 본문
programmers.co.kr/learn/courses/30/lessons/77486
코딩테스트 연습 - 다단계 칫솔 판매
민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후,
programmers.co.kr
function solution(enroll, referral, seller, amount) {
var answer = [];
let map = new Map();
for(let i=0; i<enroll.length; i++){
map.set(enroll[i], {parents : referral[i], sales: 0 });
}
for(let i=0; i<seller.length; i++){
let price = amount[i] * 100;
let sell = seller[i];
while(true){
let data = map.get(sell);
let share = parseInt(price / 10);
map.set(sell, {parents : data.parents, sales : data.sales + price-share});
if(data.parents === '-') break;
if( share === 0) break;
sell = data.parents;
price = share;
}
}
for (let [key, value] of map) {
answer.push(value.sales);
}
return answer;
}
정리
- map을 이용해서 key는 판매자, value는 객체로 추천인과 자신의 이익금 0으로 초기화시킨다.
- 판매 집계 데이터만큼 for문을 돌린다.
- while문으로 자신의 이익금과 조직 구성원의 이익금을 나눠주는 작업을 해주는데 map에 판매원이 판매한 돈에 10퍼센트를 빼준 만큼 기존 map에 있는 이익금과 더해서 map에 다시 담아준다.
- 자기 자신의 추천인이 '-' 이거나 10퍼센트의 배분금이 0이면 더 이상 진행할 수 없으므로 break 한다.
- 이제 트리 구조이기 때문에 판매원을 추천인으로 바꾸고 판매 가격 또한 배분금으로 바꾼다.
- 2번을 seller.length만큼 반복
'알고리즘 > 프로그래머스(Programmers)' 카테고리의 다른 글
[프로그래머스][2021 KAKAO BLIND RECRUITMENT][자바스크립트] 순위 검색 (0) | 2021.05.02 |
---|---|
[프로그래머스][2021 KAKAO BLIND RECRUITMENT][자바스크립트] 합승 택시 요금 (0) | 2021.05.01 |
[프로그래머스][2021 Dev-Matching: 웹 백엔드 개발자][자바스크립트] 행렬 테두리 회전하기 (0) | 2021.04.29 |
[프로그래머스][2021 Dev-Matching: 웹 백엔드 개발자][자바스크립트] 로또의 최고 순위와 최저 순위 (0) | 2021.04.28 |
[프로그래머스][2020 KAKAO BLIND RECRUITMENT][자바]문자열 압축 (0) | 2021.04.23 |
Comments