Coding Test/Java Coding Test
[프로그래머스 / 자바] - 문자열 묶기
nam_ji
2024. 11. 13. 18:33
문자열 묶기 - LV.0
문제
테스트 (인텔리제이)
import java.util.HashMap;
import java.util.Map;
public class 문자열_묶기 {
public static void main(String[] args) {
/*
문제 설명
문자열 배열 strArr이 매개변수로 주어집니다.
strArr의 원소들을 길이가 같은 문자열들끼리
그룹으로 묶었을 때 가장 개수가 많은
그룹의 크기를 출력하는 문제입니다.
제한사항
- 1 ≤ strArr의 길이 ≤ 100,000
- 1 ≤ strArr의 원소의 길이 ≤ 30
- strArr의 원소들은 알파벳 소문자로 이루어진 문자열입니다.
입출력 예
strArr result
["a","bc","d","efg","hi"] 2
입출력 예 설명
#1
- 각 문자열들을 길이에 맞게 그룹으로 묶으면 다음과 같습니다.
문자열 길이 문자열 목록 개수
1 ["a","d"] 2
2 ["bc","hi"] 2
3 ["efg"] 1
- 개수의 최댓값은 2이므로 2를 return 합니다.
*/
String[] strArr = {"a","bc","d","efg","hi"};
int answer = 0;
solution1(strArr, answer);
solution2(strArr, answer);
}
public static void solution1(String[] strArr, int answer) {
HashMap<Integer, Integer> map = new HashMap<>();
for (String str : strArr) {
map.put(str.length(), map.getOrDefault(str.length(), 0) + 1);
}
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
if (answer < entry.getValue()) {
answer = entry.getValue();
}
}
System.out.println(answer);
}
public static void solution2(String[] strArr, int answer) {
int[] lengArr = new int[31];
for (int i = 0; i < strArr.length; i++) {
lengArr[strArr[i].length()]++;
}
for (int i = 0; i <= 30; i++) {
answer = Math.max(answer, lengArr[i]);
}
System.out.println(answer);
}
}
프로그래머스 코드
// import java.util.*;
// class Solution {
// public int solution(String[] strArr) {
// int answer = 0;
// HashMap<Integer, Integer> map = new HashMap<>();
// for (String str : strArr) {
// map.put(str.length(), map.getOrDefault(str.length(), 0) + 1);
// }
// for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
// if (answer < entry.getValue()) {
// answer = entry.getValue();
// }
// }
// return answer;
// }
// }
import java.util.*;
class Solution {
public int solution(String[] strArr) {
int answer = 0;
int[] lengArr = new int[31];
for (int i = 0; i < strArr.length; i++) {
lengArr[strArr[i].length()]++;
}
for (int i = 0; i <= 30; i++) {
answer = Math.max(answer, lengArr[i]);
}
return answer;
}
}