해시맵 없이 난 못 살아 못 살아 😗
이렇게 바로 풀릴 줄이야
앞으로 맛깔나게 써줄게~!
문자열 배열 strArr이 주어집니다. strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때 가장 개수가 많은 그룹의 크기를 return 하는 solution 함수를 완성해 주세요.
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/181855
import java.util.*;
class Solution {
public int solution(String[] strArr) {
int answer = 0;
Map<Integer, Integer> my_map = new HashMap<>();
for(String s : strArr){
if(!my_map.containsKey(s.length())){
my_map.put(s.length(), 1);
}
else{
int count = my_map.get(s.length());
my_map.put(s.length(),count+1);
}
}
Iterator<Integer> iter = my_map.values().iterator();
int max = iter.next();
int it = 0;
while(iter.hasNext()){
it = iter.next();
if(max < it){
max = it;
}
}
answer=max;
return answer;
}
}
오랜만에 올리는 코테 풀이^_^
오늘 해시맵에 대해서 배웠다.
해시맵 자체가 익숙치 않아서 수업시간에 예제 푸는 데도 버벅거렸댜.
머쓱..
집 와서 기초 코테 문제들을 풀어보는데 마침! 해시맵으로 풀 수 있을 것 같은 문제를 마주했다.
바로 요 문제!
1) 해시맵을 사용해서 key 값은 string의 length로, value는 그 길이를 갖는 element의 개수로 지정을 한다.
2) 그리고 Iterator를 사용해서 value값을 하나씩 iterate하면서 max값을 찾아준다.
끝 !
*Iterator 사용시 주의할 점은! 바로 데이터가 소모된다는 거!
그래서 반드시 변수, 즉 여기서는 it 라는 변수에 next()값을 저장해두고 그 값을 가지고 비교를 해야된다.