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을 이용해서 잘 써먹었다.

  • 오늘 생일인데 하.. 날도 좋은데 공부하는게 싫지만 어쩔수 없지 않냐