728x90
반응형
문제 설명
문자열 배열 strArr이 주어집니다. strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때 가장 개수가 많은 그룹의 크기를 return 하는 solution 함수를 완성해 주세요.
제한사항
● 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 합니다.
내 풀이
Java
import java.util.*;
class Solution {
public int solution(String[] strArr) {
int answer = 0;
int arr[] = new int[100000];
for(String s : strArr){
arr[s.length()]++;
}
Arrays.sort(arr);
return arr[arr.length - 1];
}
}
C
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// strArr_len은 배열 strArr의 길이입니다.
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
int solution(const char* strArr[], size_t strArr_len) {
int answer = 0;
int arr[100000] = {0,};
int i = 0;
for(i = 0; i < strArr_len; i++){
arr[strlen(strArr[i])]++;
}
arr[i] = '\0';
for(i = 0; i < sizeof(arr) / sizeof(arr[0]); i++){
if(answer < arr[i]){
answer = arr[i];
}
}
return answer;
}
Python
def solution(strArr):
answer = []
list = [len(i) for i in strArr]
for i in set(list):
answer.append(list.count(i))
return max(answer)
https://school.programmers.co.kr/learn/courses/30/lessons/181855
728x90
반응형
'코딩테스트 > 프로그래머스 기초' 카테고리의 다른 글
[코딩테스트 Lv.0] 배열의 길이를 2의 거듭제곱으로 만들기 (1) | 2024.08.23 |
---|---|
[코딩테스트 Lv.0] 배열 비교하기 (1) | 2024.08.10 |
[코딩테스트 Lv.0] 뒤에서 5등까지 (1) | 2024.08.09 |
[코딩테스트 Lv.0] 배열의 길이에 따라 다른 연산하기 (2) | 2024.08.01 |
[코딩테스트 Lv.0] 뒤에서 5등 위로 (1) | 2024.08.01 |