Algorithm-211003

박건희·2021년 10월 3일
0

1. 개미수열

개미 수열은 아래와 같은 수열을 말한다.

1, 11, 12, 1121, 122111, 1122131, ...

주어진 수를 왼쪽에서 부터 1개 이상의 연속된 숫자와 그 숫자의 연속된 개수로 읽는다.
1 : 1이 1개 -> 11
11 : 1이 2개 -> 12
12 : 1이 1개, 2가 1개 -> 1121
1121 : 1이 2개, 2가 1개, 1이 1개 -> 122111

....

N이 주어질 때 N번째 단계의 개미 수열을 출력

def solution(n):
    
   answer = "1"
    
   for _ in range(n-1):
       start = 0
       previous_answer = ""
        
       while start < len(answer):
           num_consecutive_number = count_consecutive_number(answer[start:])
           previous_answer += answer[start] + str(num_consecutive_number)
           start += num_consecutive_number
            
       answer = previous_answer
   
   return answer
    

def count_consecutive_number(str):
    start = str[0]
    for idx,num in enumerate(str):
        if num != start:
            return idx
    return len(str)

0개의 댓글