문제
문자열 배열 strArr이 주어집니다. strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때 가장 개수가 많은 그룹의 크기를 return 하는 solution 함수를 완성해 주세요.
풀이 - 배열
import java.util.*;
class Solution {
public int solution(String[] strArr) {
int answer = 0;
int[] cnt = new int[30];
for(int i=0; i<strArr.length; i++){
int a = strArr[i].length();
int save = cnt[a-1];
cnt[a-1] = ++save;
}
for(int i=0; i<cnt.length; i++){
if(answer<cnt[i]){
answer=cnt[i];
}
}
return answer;
}
}
풀이 - Map
import java.util.*;
class Solution {
public int solution(String[] strArr) {
int answer = 0;
Map<Integer, Integer> map = new HashMap<>();
for(int i=0; i<strArr.length; i++){
int a = strArr[i].length();
int save = 1;
if(map.containsKey(a)){
save = map.get(a)+1;
}
map.put(a, save);
}
for(int i=1; i<=30; i++){
if(map.containsKey(i)){
if(answer<map.get(i)){
answer=map.get(i);
}
}
}
return answer;
}
}
'programmers' 카테고리의 다른 글
[JAVA] 정수 부분 - Math.floor() (0) | 2024.07.02 |
---|---|
[JAVA] 전국 대회 선발고사 (0) | 2024.07.02 |
[JAVA] 세 개의 구분자 - replaceAll (0) | 2024.07.01 |
[JAVA] x 사이의 개수 - split() (0) | 2024.06.28 |
[JAVA] 문자열 잘라서 정렬하기 (0) | 2024.06.28 |