반응형
https://codecollector.tistory.com/manage/newpost/?type=post&returnURL=/manage/posts/
전수조사를 통해 해결한 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
1. 각 부분 문자열을 key로 빈도수를 value로 할 hash map변수 sub_str_map을 선언 후 모든 부분 문자열의 빈도수를 저장합니다.
2. 정답 변수 max_length를 선언 후 -1로 초기화합니다.
📔 풀이과정
sub_str_map의 모든 item에 대해 순회하며 빈도수가 3이상이라면 max_length와 해당 부분 문자열의 길이 중 최댓값을 저장합니다.
📔 정답 출력 | 반환
max_length를 반환합니다.
📕 Code
📔 Python3
class Solution:
def maximumLength(self, s: str) -> int:
def special(s:str) -> bool:
for i in range(1, len(s)):
if s[i] != s[i-1]:
return False
return True
sub_str_map = {}
for i in range(0, len(s)):
for j in range(i+1, len(s)+1):
sub_str = s[i:j]
if special(sub_str):
sub_str_map[sub_str] = sub_str_map.get(sub_str, 0) + 1
max_length = -1
for sub_str, occurred in sub_str_map.items():
if occurred >= 3:
max_length = max(max_length, len(sub_str))
return max_length
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.