2011. 6. 27. 01:04

[ Problem ] - http://www.pythonchallenge.com/pc/return/bull.html

♧ 소스를 보면 황소에 링크(sequence.txt)가 걸려 있다.

Sequence.txt 파일을 보면 'a = [1, 11, 21, 1211, 111221,' 라는 내용이 보인다.

♧ 이것은 '보고 말하기 수열(look and say sequence)'로 우리에겐 '개미수열'

프랑스 소설가 베르나르 베르베르의 소설 [개미]로 많이 알려졌다.

♧ 위의 그림과 같이 앞에서 부터 중복되는 숫자의 개수와 그의 수를 차례로 보고 말하는 수열이다.

(※ 자세한 내용은 다음 [참조 1] [참조 2] 페이지를 참고하자.)

♧ 즉, 위의 1로 시작하는 '개미수열'의 30번째 단계의 길이(len(a[30]) = ?)
맞추는 문제이다.

(※ 해당 솔루션 문서 참조)

import re

curr = '1'
for each in range(30):
    match = re.findall("(\d)(\\1*)", curr)
    curr = ''.join([str(len(k+y))+k for k,y in match])

print len(curr)

  

   

[ Solution ] - http://www.pythonchallenge.com/pcc/return/5808.html

(※ 문제에 대한 다양한 해결법은 링크 참조.)

Posted by devanix