https://programmers.co.kr/learn/courses/30/lessons/60057
🤔문제접근
1. ( 1개 ~ 전체길이 나누기 2의 몫 )의 길이를 갖는 패턴을 완전탐색 비교해야한다.
2. 옆친구와 패턴이 같을 경우, 다를 경우를 분기하여 처리를 해준다.
3. i 길이의 패턴 비교를 적용한 temp_word라는 문자열을 도출한 다음 temp_word의 길이중 가장 작은 친구를 답으로 도출한다.
🌈코드구현
def solution(s):
n = len(s)
min_count = n
if n == 1:
return 1
for i in range(1, n // 2 + 1):
now_pattern = s[:i]
count = 1
temp_word = ''
for j in range(i, len(s), i):
target_pattern = s[j:j + i]
if now_pattern != target_pattern:
if count > 1:
sum_pattern = str(count) + now_pattern
temp_word += sum_pattern
else:
temp_word += now_pattern
now_pattern = target_pattern
count = 1
else:
count += 1
if count > 1:
sum_pattern = str(count) + now_pattern
temp_word += sum_pattern
else:
temp_word += now_pattern
if min_count > len(temp_word):
min_count = len(temp_word)
return min_count
'알고리즘 공부💥 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 카펫 / python (0) | 2021.09.14 |
---|---|
[프로그래머스] 소수찾기 / python (0) | 2021.09.13 |
[프로그래머스] 카카오기출 / 합승택시 / python (0) | 2021.09.04 |
[프로그래머스] 카카오기출 / 순위검색 / python (0) | 2021.09.03 |
[프로그래머스] 카카오기출 / 메뉴리뉴얼 / python (0) | 2021.09.01 |