728x90
https://school.programmers.co.kr/learn/courses/30/lessons/181855
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
'코테연습 > 프로그래머스' 카테고리의 다른 글
코딩테스트 연습 > SELECT > 오프라인/온라인 판매 데이터 통합하기 MySQL (0) | 2024.01.24 |
---|---|
코딩 기초 트레이닝 > 전국 대회 선발 고사 (0) | 2024.01.08 |
⭐ 코딩 기초 트레이닝 > 무작위로 K개의 수 뽑기 Java (0) | 2023.11.20 |
코딩 기초 트레이닝 > 배열 만들기 6 (0) | 2023.11.09 |
코딩 기초 트레이닝 > 조건에 맞게 수열 반환하기 2 Java / 배열비교 Arrays.equals() (0) | 2023.11.01 |