본문 바로가기

WarGame/PythonChallenge

Python Chanllenge 10 :: 읽고 말하기 수열

파이썬 챌리지 10은 다음과 같습니다.



소스코드를 보니 html map 태그가 걸려 있고, 링크가 되어 있습니다.



링크로 들어가보면 다음과 같은 문제가 나옵니다.



구글에 검색해 보니 읽고 말하기 수열이라는 것을 알게 되었습니다.



이번 문제는 특별한 모듈을 사용하기 보다는 수학적인 알고리즘을 만드는 문제인 것 같습니다.


최종 풀이는 다음과 같습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
= '1'        # 문자 형식으로 초기값 대입
 
def look(a):        # 읽고 말하기 수열 함수 
    pre = a[0]        # pre : 이전 숫자
    count = 0        # count : 반복 횟수
    result = ""        
 
    for now in a:            # 수열을 하나씩 읽어 온다.
        if now == pre:        # 처음 시작할 때 or 이전 숫자와 현재 숫자가 같은면 count + 1
            count += 1    
        else:                # 같은 숫자가 아니면 반복 횟수 값(count)과 pre값을 result 변수에 대입하고 count = 1로 초기화
            result += str(count) + pre
            count = 1
        pre = now            # 현재 숫자를 이전 숫자에 대입
    result += str(count) + pre    # 마지막 숫자
 
    return result            # 최종 수열값 반환
 
for i in range(30):            # 30번 반복
    a = look(a)
 
print(len(a))                # 마지막 a 수열값의 길이 출력
cs


정답은?


5808


'WarGame > PythonChallenge' 카테고리의 다른 글

Python Challenge 11 :: Image(PIL)  (0) 2015.11.01
Python Challenge 09 :: turtle  (0) 2015.10.31
Python Challenge 08 :: bz2  (0) 2015.10.31
python challenge 07 :: Image(PIL)  (0) 2015.10.30
Python Challenge 06 :: zipfile  (0) 2015.10.26