포럼에 올라온 글에 자극받아서 아예 한 줄 코드로 만들어 봤다.
아래와 같이 정상적인(?) 코드를 작성할 수도 있다.
오일러 프로젝트 projecteuler.net 의 문제들을 풀고 설명하는 스터디 공간입니다. 조언, 부연, 비판, 질문 환영합니다.
print sum([(i+1)*sum([ord(c)-64 for c in name]) for i,name in enumerate(sorted([name.strip('"') for name in open('p022_names.txt').read().split(',')]))])
ABC = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' alphanum = {} for i,c in enumerate(ABC): alphanum[c] = i + 1 def calcname(name): return sum([alphanum[s] for s in name]) with open('/Users/Dongug/Downloads/p022_names.txt') as f: names = [name.strip('"') for name in f.readline().split(',')] rs = 0 for i,name in enumerate(sorted(names)): rs += (i + 1) * calcname(name) print rs
No comments:
Post a Comment