링크

다단계 칫솔 판매

난이도

  • 프로그래머스 난이도 3
    • 긴문제를 빠르게 읽고 이해하는게 중요

문제요약

  • 칫솔(개당100원)을 판매하고 90%는 내가, 10%는 추천인에게 넘겨주는 과정이 반복됨
    • 10%받은것도 10%는 또 그 위의 추천인에게 넘어감
  • 최종적으로 번 금액은?

접근

  • 단순 반복으로 계산하는 과정을 적용
  • 문제에서 주어진 변수가 많은데 이를 합치는 과정이 필요

간단 알고리즘

  • 제공되는 변수 : 판매인, 해당판매인의 추천인, 판사람, 판 갯수
  • [판매인,자산]으로 변수 설정
  • dict로 {판매인,추천인}을 새로 생성
  • 반복
    • 판갯수*100으로 얻는 이익을 초반에 계산 = earn으로
    • 판매인부터 시작해서 추천인으로 거슬로 올라가면서 계산 시작
    • 판매인의 자산 += earn - earn*0.1
    • 판매인 = 판매인의 추천인
  • 반복 종료 조건
    • earn이 0이될때
    • 추천인이 더이상 없을때

후기

  • 반복하는 과정을 어떻게 간단히 하느냐가 중요
  • 문제가 길어서 빠르게 요점을 파악하는게 중요했다.
  • 단순히 0.9로 계산이 아니라 추천인에게 넘길 0.1을 먼저 계산해서 자기것을 계산해야 정답이 나온다.