링크
다단계 칫솔 판매
난이도
- 프로그래머스 난이도 3
- 긴문제를 빠르게 읽고 이해하는게 중요
문제요약
- 칫솔(개당100원)을 판매하고 90%는 내가, 10%는 추천인에게 넘겨주는 과정이 반복됨
- 10%받은것도 10%는 또 그 위의 추천인에게 넘어감
- 최종적으로 번 금액은?
접근
- 단순 반복으로 계산하는 과정을 적용
- 문제에서 주어진 변수가 많은데 이를 합치는 과정이 필요
간단 알고리즘
- 제공되는 변수 : 판매인, 해당판매인의 추천인, 판사람, 판 갯수
- [판매인,자산]으로 변수 설정
- dict로 {판매인,추천인}을 새로 생성
- 반복
- 판갯수*100으로 얻는 이익을 초반에 계산 = earn으로
- 판매인부터 시작해서 추천인으로 거슬로 올라가면서 계산 시작
- 판매인의 자산 += earn - earn*0.1
- 판매인 = 판매인의 추천인
- 반복 종료 조건
- earn이 0이될때
- 추천인이 더이상 없을때
후기
- 반복하는 과정을 어떻게 간단히 하느냐가 중요
- 문제가 길어서 빠르게 요점을 파악하는게 중요했다.
- 단순히 0.9로 계산이 아니라 추천인에게 넘길 0.1을 먼저 계산해서 자기것을 계산해야 정답이 나온다.