on
[프로그래머스] [Level3] 다단계 칫솔 판매 JAVA
[프로그래머스] [Level3] 다단계 칫솔 판매 JAVA
import java.util. * ;
import java.io. * ;
import java.util.stream. * ;
class Solution {
Map < String ,Node > table;
public int [] solution( String [] enroll, String [] referral, String [] seller, int [] amount) {
table = new HashMap < String , Node > ();
Node center = new Node( "center" ,enroll. length );
table.put( "center" ,center);
for ( int i = 0 ;i < enroll. length ;i + + ) table.put(enroll[i], new Node(enroll[i],i));
for ( int i = 0 ;i < referral. length ;i + + ) {
if (referral[i]. equals ( "-" )) table.get(enroll[i]).parent = "center" ;
else table.get(enroll[i]).parent = referral[i];
}
int [] result = new int [enroll. length ];
for ( int i = 0 ;i < seller. length ;i + + ){
int profit = amount[i] * 100 ;
Node cur = table.get(seller[i]);
while ( ! cur.name. equals ( "center" )){
int parentProfit = profit / 10 ;
result[cur.key] + = profit - parentProfit;
cur = table.get(cur.parent);
profit = parentProfit;
if (profit < 1 ) break ;
}
}
System . out . println ( "Arrays.toString(result) = " + Arrays. toString (result));
return result;
}
static class Node{
String name,parent;
int key;
public Node( String name, int key) {
this .name = name;
this .parent = null ;
this .key = key;
}
}
}
from http://katastrophe.tistory.com/82 by ccl(A) rewrite - 2021-11-13 02:01:49