문제풀이
def solution(s):
answer = 0
min_st = len(s)
for length in range(1, len(s)):
new_st = [s[i:i+length] for i in range(0, len(s), length)]
answer_st = ''
key = None
for word in new_st:
if key:
if key == word:
count += 1
else:
if count > 1:
answer_st += str(count) + key
key = word
count = 1
else:
answer_st += key
key = word
count = 1
else:
key = word
count = 1
if count > 1:
answer_st += str(count) + key
else:
answer_st += key
if len(answer_st) < min_st:
min_st =len(answer_st)
answer = min_st
return answer
특정한 알고리즘 해결로 푸는 문제는 아니었다. 다만 내부 생성 표기법을 한 번 더 볼 필요는 있다.
알고리즘
내부 생성
new_st = [s[i:i+length] for i in range(0, len(s), length)]
문자열 s를 [ i : i + length] 만큼씩 배열에 저장한다.
출처
문제: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
코딩테스트 연습
기초부터 차근차근, 직접 코드를 작성해 보세요.
programmers.co.kr