[프로그래머스] [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