본문 바로가기

오일러프로젝트

[오일러프로젝트] 17번문제


1부터 5까지의 숫자를 영어로 쓰면 one, two, three, four, five 이고,
각 단어의 길이를 더하면 3 + 3 + 5 + 4 + 4 = 19 이므로 사용된 글자는 모두 19개입니다.

1부터 1,000까지 영어로 썼을 때는 모두 몇 개의 글자를 사용해야 할까요?

참고: 빈 칸이나 하이픈('-')은 셈에서 제외하며, 단어 사이의 and 는 셈에 넣습니다.
  예를 들어 342를 영어로 쓰면 three hundred and forty-two 가 되어서 23 글자,
  115 = one hundred and fifteen 의 경우에는 20 글자가 됩니다.

로직의 어려움보다는 스펠링 틀리고 스펠링 기억이 안나서 개고생 -_-;
소스도 if의 아름다운 중첩...;;;

 

Python
풀고자 접근했던 개념은 비슷한 것 같지만 중복을 알고리즘으로 처리하여 훨씬 짧고 깔금
Ruby

Perl

문맥에 따라 결과가 달라지는 Perl. 일단 string끼리의 결합은 +가 아니라 .으로.. hash의 키는 무조건 string으로 인식되는데.. 00도 그대로 "00"으로...