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
- 멘딕스
- 재귀
- algorithm
- 백트래킹
- 자바
- lcap
- dfs
- 트리
- 완전탐색
- MySQL
- Recursion
- microflow
- Mendix
- Sort
- 가중치없는그래프
- 프로그래머스
- 집합
- Bruteforce
- 정렬
- 그래프
- 매개변수 탐색
- 이분탐색
- git
- 스택
- 해시맵
- SQL
- 알고리즘
- 반효경교수님
- domain model
- 자료구조
Archives
- Today
- Total
mondegreen
[240328] 알고리즘 리부트 40일차 - 프로그래머스 다단계 칫솔 판매 자바 본문
반응형
import java.util.*;
class Solution {
public static int [] answer;
public static HashMap<String, String> chain;
public static HashMap<String, Integer> order;
public int[] solution(String[] enroll, String[] referral, String[] seller, int[] amount) {
answer = new int[enroll.length];
chain = new HashMap<>();
order = new HashMap<>();
for(int i =0; i<enroll.length; i++){
chain.put(enroll[i], referral[i]);
order.put(enroll[i], i);
}
for(int i =0; i<seller.length; i++){
addProfits(seller[i], amount[i]*100);
}
return answer;
}
public static void addProfits(String sellerName, int amt){
if(!chain.containsKey(sellerName)) return;
double tenPercent = Math.floor(amt*0.1);
int remaining = amt - (int)tenPercent;
if(tenPercent<1) answer[order.get(sellerName)] +=amt;
else{
addProfits(chain.get(sellerName), (int)tenPercent);
answer[order.get(sellerName)] +=remaining;
}
}
}
반응형
'알고리즘 풀이 및 리뷰 > 프로그래머스' 카테고리의 다른 글
[240329] 알고리즘 리부트 41일차 - 프로그래머스 섬 연결하기 자바 (0) | 2024.03.29 |
---|---|
[240329] 알고리즘 리부트 41일차 - 프로그래머스 영어 끝말잇기 자바 (0) | 2024.03.29 |
[240328] 알고리즘 리부트 40일차 - 프로그래머스 예상 대진표 자바 (0) | 2024.03.28 |
[240328] 알고리즘 리부트 40일차 - 프로그래머스 완주하지 못한 선수 자바 (0) | 2024.03.28 |
[240326] 알고리즘 리부트 39일차 - 프로그래머스 주식 가격 자바 (0) | 2024.03.26 |