2008년 8월 1일 금요일

소녀시계에 홀리다

?gg_soul_screensaver.jpg

삼성에서 Soul폰 광고의 일환으로 소녀시대 스크린 세이버를 내놓았습니다. 제 입에서 이런 소리가 나올 줄은 정말 몰랐네요.



사랑해요! 삼성 ㅋ



스크린 세이버는 시계로 위의 사진 처럼 9명의 소시맴버가 각각 0~8번까지의 번호판을 들고 등장합니다.

정신줄을 놓고 이 시계를 보다 보니, 문득
어라? 우리 탱구가 너무 덜 나오는거 같아!!

라는 생각이 들어 파이썬으로 누가누가 몇번씩 나오는지 세어 보기로 했습니다.

우선 0~9번까지의 번호판을 누가 들고 있는지에 대한 list를 만듭니다. (인덱스가 들고 있는 번호)

>>> GG = ['티파니','윤아','태연','제시카','수영','효연','유리','써니','서현','핸드폰']

다음 누구 몇번 나왔는지를 저장할 dict을 선언

>>> GGShownTimes = {}

더? 좋은 알고리즘이 있겠지만, 그걸 생각해 내는 시간보다 이걸 기다리는게 빠르므로 아래와 같이 러프하게 세어보았습니다.

>>> for h in range(0,24):
for m in range(0,60):
for s in range(0,60):
strTime = '%02d:%02d:%02d'%(h,m,s)
for i in range(10):
iCount = strTime.count('%d'%i)
G = GG[i]
if GGShownTimes.has_key(G):
GGShownTimes[G] += iCount
else:
GGShownTimes[G] = 0

이제 dict의 value(몇번 나왔나)를 기준으로 key(소녀)를 역순 정렬 합니다.

>>> from operator import itemgetter
>>> sortedGGShownTimes = sorted(GGShownTimes.items(), key=itemgetter(1), reverse=True)

그리고 출력

>>> for G, sTime in sortedGGShownTimes:
print G, sTime, '번'

윤아 92880 번
티파니 92874 번
태연 71280 번
제시카 56880 번
효연 53280 번
수영 53280 번
써니 24480 번
핸드폰 24480 번
서현 24480 번
유리 24480 번

오호! 예상과 달리 탱구가 제일 많이 등장하네요!!

어쩜 이렇게 사심을 담아 틀렸는지 -_-;; 잘못된 내용이 있어 코드 수정하였습니다. 탱구는 3등~

이래저래 기분 좋은 하루 입니다. 룰루~