이 영역을 누르면 첫 페이지로 이동
자라자 블로그의 첫 페이지로 이동

자라자

페이지 맨 위로 올라가기

자라자

개발자를 준비하는 자라자의 블로그입니다.

[프로그래머스] 다단계 칫솔 판매 파이썬

  • 2021.11.11 19:16
  • PS/Programmers

프로그래머스로고

[문제 링크]

https://programmers.co.kr/learn/courses/30/lessons/77486

[입출력 예]

enroll referral seller amount result
["john", "mary", "edward", "sam", "emily", "jaimie", "tod", "young"] ["-", "-", "mary", "edward", "mary", "mary", "jaimie", "edward"] ["young", "john", "tod", "emily", "mary"] [12, 4, 2, 5, 10] [360, 958, 108, 0, 450, 18, 180, 1080]
["john", "mary", "edward", "sam", "emily", "jaimie", "tod", "young"] ["-", "-", "mary", "edward", "mary", "mary", "jaimie", "edward"] ["sam", "emily", "jaimie", "edward"] [2, 3, 5, 4] [0, 110, 378, 180, 270, 450, 0, 0]

[소스코드]

def solution(enroll, referral, seller, amount):
    # 정답 배열 설정
    answer = [0]*len(enroll)
    idx_list={}
    for idx,name in enumerate(enroll):
        idx_list[name]=idx #idx_list = {"john":0, ....}
    # 이제 인덱스가 있기 때문에 인덱스로 부모 조회가 가능하다.
    # 트리를 아예 새로 짜는 게 아니라 부모를 조회하는 방법만 알면 된다.

    for idx,name in enumerate(seller):
        price=100*amount[idx]
        answer[idx_list[name]]+=price #일단 price를 온전히 더함
        while referral[idx_list[name]]!="-": #루트 노드 나올때까지
            answer[idx_list[name]]-=price//10 # 10%감축,
            name=referral[idx_list[name]] # name을 부모의 name으로 바꿈.
            answer[idx_list[name]]+=price//10 #부모에게 10%더함
            price=price//10 # price를 10%로 재정의
            if price==0:
                break
        answer[idx_list[name]]-=price//10 # 마지막에 price를 90%로 적용시켜줘야함.
    return answer

'PS > Programmers' 카테고리의 다른 글

[프로그래머스] N으로 표현 파이썬 풀이  (0) 2021.11.25
[프로그래머스] 자물쇠와 열쇠 파이썬  (0) 2021.11.11
프로그래머스_정수삼각형  (0) 2021.10.20
[프로그래머스] 입국심사 파이썬 풀이  (0) 2021.10.18
프로그래머스_추석트래픽  (0) 2021.10.14

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [프로그래머스] N으로 표현 파이썬 풀이

    [프로그래머스] N으로 표현 파이썬 풀이

    2021.11.25
  • [프로그래머스] 자물쇠와 열쇠 파이썬

    [프로그래머스] 자물쇠와 열쇠 파이썬

    2021.11.11
  • 프로그래머스_정수삼각형

    프로그래머스_정수삼각형

    2021.10.20
  • [프로그래머스] 입국심사 파이썬 풀이

    [프로그래머스] 입국심사 파이썬 풀이

    2021.10.18
다른 글 더 둘러보기

정보

자라자 블로그의 첫 페이지로 이동

자라자

  • 자라자의 첫 페이지로 이동

검색

메뉴

  • 🏠 HOME
  • 💡 ABOUT
  • 💻 GITHUB

카테고리

  • 분류 전체보기 (91)
    • Tech Note (3)
    • Dev Log (11)
    • Study Log (11)
    • Settings (3)
    • PS (53)
      • Programmers (21)
      • BOJ (32)
    • Diary (10)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 리액트
  • ㅣ
  • 공식문서읽기

나의 외부 링크

정보

자라자의 자라자

자라자

자라자

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © 자라자. Designed by Fraccino.

티스토리툴바