울음참고 개발공부
article thumbnail
728x90

 

https://school.programmers.co.kr/learn/courses/30/lessons/181855

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 


 

import java.util.*;

class Solution {
    public int solution(String[] strArr) {
        Map<Integer, Integer> map = new HashMap<>();
        
        for (String str : strArr) {
            int length = str.length();
            map.put(length, map.getOrDefault(length, 0) + 1);
        }
        
        int maxCount = 0;
        for (int count : map.values()) {
            maxCount = Math.max(maxCount, count);
        }
        
        return maxCount;
    }
}

 

 

 

 


 

 

입출력 예시코드를 돌렸을 때, Map<> 출력값은 다음과 같다.

 

주요한 로직 

 

1) getOrDefalut() 메서드를 수행하며 각 글자수에 해당하는 값이 있다면 +1 씩 추가 

String: a, Length: 1, Map: {1=1}
String: bc, Length: 2, Map: {1=1, 2=1}
String: d, Length: 1, Map: {1=2, 2=1}
String: efg, Length: 3, Map: {1=2, 2=1, 3=1}
String: hi, Length: 2, Map: {1=2, 2=2, 3=1}

 

 

 

2) maxCount 에 최댓값을 갱신하며 최대값 찾기 

 

 


 

getOrDefault

Map 인터페이스의 메서드 중 하나
주어진 키에 해당하는 값을 반환하거나, 해당 키가 없을 경우 지정한 기본값을 반환함 

 

 

  • getOrDefault 예시 )

과일의 이름과 과일의 재고 수를 저장하는 Map 을 만든다.

 

Map<String, Integer> fruitInventory = new HashMap<>();
fruitInventory.put("사과",10);
fruitInventory.put("바나나",5);

 

 

여기서 getOrDefault 를 사용하여 과일의 재고를 확인할 수 있다. 

int appleStock = fruitInventory.getOrDefault("사과",0); // 10
int orange = fruitInventory.getOrDefault("오렌지",0); // 0

 

"사과" 는 존재하기 때문에 갯수를 반환하고, "오렌지"는 존재하지 않으므로 0을 반환한다. 

 

 

 

728x90
profile

울음참고 개발공부

@메각이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!