n번째 삼각수는 tn = ½ n (n + 1) 이라는 식으로 구할 수 있는데, 처음 10개는 아래와 같습니다.
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
어떤 영어 단어에 대해서, 각 철자의 알파벳 순서(A=1, B=2, ..., Z=26)를 모두 더한 값을 '단어값'이라 부르기로 합니다. 예를 들어 'SKY'의 단어값은 19 + 11 + 25 = 55가 되는데, 이것은 우연히도 t10과 같습니다.
이렇게 어떤 단어의 단어값이 삼각수일 경우에는 이 단어를 '삼각단어'라 부르기로 합니다.
약 16KB의 텍스트 파일 words.txt에는 2000개 정도의 영어 단어가 수록되어 있습니다. 이 중에서 삼각단어는 모두 몇 개입니까?
회사에서 점심먹고 잠시..파이썬으로만 풀었다..
삼각수 공식에 의해서 단어점수의 값을 X라고 하면
2X = n^2 + n이 된다.
n의 범위를 정해야 하는데 sqrt(2X)의 값을 시작점으로 잡으면 적당해보이고
n^2 + n이 2X를 넘으면 삼각수가 아닌 것으로 판별한다.
일단 파이썬만 풀었고..나머지는 이따 집에서..ㅋ
Ruby
Perl
근데 ruby에서 alphaList를 getNameScore 밖으로 빼면 인식을 못 한다. 이유를 모르겠다 --;;