CodeWars 쉰 여덞 번째 문제
Updated:
Help the bookseller !
public static String stockSummary(String[] lstOfArt, String[] lstOf1stLetter) {
if(lstOfArt.length == 0 || lstOf1stLetter.length == 0) {
return "";
}
HashMap<String, Integer> artMap = new HashMap<String, Integer>();
for(String list : lstOfArt) {
String[] art = list.split(" ");
String firstLetter = art[0].substring(0,1);
int quantity = Integer.parseInt(art[1]);
artMap.put(firstLetter, artMap.getOrDefault(firstLetter, 0) + quantity);
}
for(int i= 0; i < lstOf1stLetter.length; i++) {
Integer sumQuantity = artMap.get(lstOf1stLetter[i]) == null? 0 : artMap.get(lstOf1stLetter[i]);
lstOf1stLetter[i] = "(" + lstOf1stLetter[i] + " : " + sumQuantity + ")";
}
return String.join(" - ", lstOf1stLetter);
}
-
Best 코드들과 같은 알고리즘.
-
저번 문제에서 배운 getOrDefault를 잘 써먹었다.
-
출력 형식도 이전에 배운 join을 이용해서 잘 써먹었다.
-
오늘 생일인데 하.. 날도 좋은데 공부하는게 싫지만 어쩔수 없지 않냐