알파벳으로 보는 100점 짜리 인생
글쓴이: kall / 작성시간: 월, 2005/03/14 - 7:17오후
얼마전 진대제장관이 얘기했다던 알파벳으로 보는 100점 인생에 관한 얘기를 보다가 한번 만들어 봤습니다 :)
PHP
function convert_num($str)
{
$ret = 0;
$str = strtolower($str);
for ( $i = 0; $i < strlen($str); $i++)
{
$value = ord($str[$i])-96;
if ( 0 < $value and $value < 27 )
$ret += $value;
}
return $ret;
}
Python
def convert_num(str):
ret = 0
arr = " abcdefghijklmnopqrstuvwxyz"
str = str.lower()
for i in str:
try:
ret += arr.index(i)
except:
pass
return ret
몇단어 해봤더니 재밌군요 :)
>>> f.convert_num('batman')
51
배트맨..실패한 인생이었군요 :(
>>> f.convert_num('spiderman')
99
가난에 쩌들던 스파이더맨..성공한 인생이고..
>>> f.convert_num('superman')
107
역시 수퍼맨..super답게 100을 넘어버렸습니다. ;;
>>> f.convert_num('wonderwoman')
145..역시..여성 상위 시대인듯.. :wink:
Forums:


아아, 무려 10여분에 걸쳐 wonderwoman을 잠재울, 전화번호
아아, 무려 10여분에 걸쳐 wonderwoman을 잠재울, 전화번호
끝자락에 이름긴 영웅들의 이름을 찾아봤지만, 끝내 실패했습니다.ㅠ.ㅠ;
x맨을 떠올리는 순간 이거닷!, 했으나, 4글자.ㅠ.ㅠ;
import string def convert_num(str): ret = 0 for i in str.lower(): try: ret += ([' '] + list(string.lowercase)).index(i) except: pass return ret두줄 줄여봤습니다.^^;
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
mr.incredible : 112elastigirl : 112
mr.incredible : 112
elastigirl : 112
평등한 부부로군요. ^^;
C입니다. gcc -Wall에서 워닝 한 개 나지만...[code
C입니다. gcc -Wall에서 워닝 한 개 나지만...
#include <ctype.h> int main(int c,char*v[],char*p) { return v?(c==2?main(0,0,v[1]):0):*p?main(c+(isalpha(*p)?toupper(*p)-'A'+1:0),0,p+1):c; }물론, 평소엔 이렇게 안 짭니다 :twisted:
크헉, 다섯줄이당^^; main을 재귀하고, 3항연산자로 끝을 낸 저 센
크헉, 다섯줄이당^^; main을 재귀하고, 3항연산자로 끝을 낸 저 센스!!^^;
오옷...main param을 저렇게도 쓸수 있군요...
perl의 외줄신공이 나오지 않을지...^^
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
[code:1]$ python -c "print sum(
$ ruby -e "puts eval('batman'.gsub(//, '-96+?')[0...-5])" 51clean system[code:1]module eximp
clean system
[code:1]jindaeje=lambda s:sum(&#
jindaeje=lambda s:sum([ord(c)-64 for c in s.upper()if'@'<c<'['])파이썬 버전이고, 2.4 이하의 버전에서도 돌아 갑니다 :) lambda 부분의 길이는 55바이트입니다. 2.4에서만 돌아 가는 버전은 2바이트 더 작습니다.
jindaeje=lambda s:sum(ord(c)-64 for c in s.upper()if'@'<c<'[')이런 종류의 코드 만드시는 분들께서 간과하시는 것이 알파벳 말고 다른 글자가 들어 오는 경우를 처리하지 못 한다는 것이죠 :) 예외 처리를 잘 합시다아.
- 토끼군
지인중에 누군가 사전을 입력으로 100점짜리 단어중 재밌는걸 뽑아봤다고
지인중에 누군가 사전을 입력으로 100점짜리 단어중 재밌는걸 뽑아봤다고 합니다.
--
Life is short. damn short...
perl version
알파벳은 무조건 소문자로 바꾸고 그 이외는 제거하고
점수를 매기는 함수입니다.
#!/usr/bin/perl print grade_word("Spider man"); print "\n"; print grade_word("spiderman"); sub grade_word { my $grade = 0; my $word = lc($_[0]); $word =~ tr/^a-z//cd; $grade+=($_-96) for (unpack("C*",$word)); return $grade; }결과
흠
무한포옹(Muhanpong) 돌려보았습니다.
109무단포옹(Mudanpong) 돌려보았습니다.
105별차이 없네요.
막 살아도 되는 걸까요?
[code:1]function convert_num($str
function convert_num($str) { $ret = 0; $str = strtolower($str); if ( strcmp($str, 'gamja9e') == 0 ) return 9999; for ( $i = 0; $i < strlen($str); $i++) { $value = ord($str[$i])-96; if ( 0 < $value and $value < 27 ) $ret += $value; } return $ret; }-_-;;
흐흐.. 100점짜리 예라면..cyworld -_-... orz
흐흐.. 100점짜리 예라면..
cyworld -_-... orz
me.brain.flush()
댓글 달기