본문 바로가기

dev/코테

다단계 칫솔 판매

프로그래머스에서 다단계 칫솔 판매 문제를 풀었습니다.

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제에 대한 설명은 위의 링크에서 확인하시면 됩니다.

 

소스 코드

 

판매원 정보가 있는 enroll을 key는 "판매원 이름", value는 "판매원 이름 인덱스"로 구성된 Map으로 변환합니다.

 

Map을 사용하는 이유는 enroll 배열에 있는 사용자 입력 순서대로 각 사용자의 이익금을 입력하기 위해서입니다.

(seller와 amount 배열이 enroll 배열 순서대로 입력되지 않고 길이가 다르기 때문입니다.)

 

while문에서 seller 배열과 amount 배열을 순회하여 본인 몫과 추천인 몫을 계산합니다.

 

이 문제는 DFS를 응용한 문제이기 때문에 stack을 사용해서 추천인을 추적합니다.

 

재귀를 써도 되지만 개인적으로 재귀를 좋아하지 않아서 stack을 사용했습니다.

 

나머지 소스 코드에 대한 설명은 주석을 확인하시면 됩니다.

 

채점 결과

'dev > 코테' 카테고리의 다른 글

신고 결과 받기  (0) 2023.06.13
개인정보 수집 유효기간  (0) 2023.05.19
파일명 정렬  (0) 2023.02.22
k진수에서 소수 개수 구하기  (0) 2023.01.03
행렬과 연산  (0) 2022.12.17