만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

또 다른 단어 정렬

면접 대비

시간 제한1초메모리 제한128 MB

요약
최대 1000개 소문자 단어를 글자값 합과 이웃한 같은 글자 쌍 보너스로 매긴 점수 내림차순으로 정렬하고 동점은 사전 순으로 출력합니다.
난이도

쉬움10점 중 3점

유형
정렬, 문자열
정답자
아직 제출이 없습니다

문제

단어에 점수를 매기는 새로운 방식이 있다. 알파벳 각 글자에는 순서대로 값이 붙는다. a는 1, b는 2, c는 3, ..., z는 26이다. 단어의 점수는 글자 값의 합에 보너스를 더한 값이다. 같은 글자가 두 개 연달아 나오면 그 글자 값의 두 배를 보너스로 더한다. 보너스를 계산할 때 한 글자는 한 번만 쓸 수 있다. 그래서 같은 글자가 세 개 이어지면 앞의 두 개만 짝이 되고 세 번째 글자는 남는다.

점수는 다음과 같이 계산한다.

apple = (1+16+16+12+5) + 보너스 2x16 = 82
banana = (2+1+14+1+14+1) = 33 (보너스 없음)
orange = 15+18+1+14+7+5 = 60 (보너스 없음)
acted = (1+3+20+5+4) = 33 (보너스 없음)
commit = 3+15+13+13+9+20 + 보너스 13x2 = 99

단어 목록이 주어지면 점수가 높은 순서대로 다시 나열한다. 점수가 같은 단어는 사전순으로 정렬한다.

입력

입력은 한 줄에 단어를 하나씩 담는다. 단어는 소문자 a부터 z까지만 쓰고, 길이는 20자를 넘지 않는다. 줄 수는 최대 1,000이다.

출력

입력에 나온 단어를 이 방식으로 다시 나열해 한 줄에 하나씩 출력한다. 같은 단어가 여러 번 나오면 나온 횟수만큼 모두 출력한다. 출력에는 공백도 빈 줄도 없다.

예제2

  1. 예제 1

    입력
    apple
    banana
    commit
    orange
    acted
    apple
    ieee
    
    예상 출력
    commit
    apple
    apple
    orange
    ieee
    acted
    banana
    
  2. 예제 2

    입력
    aaaa
    a
    aa
    aaa
    aaaaa
    
    예상 출력
    aaaaa
    aaaa
    aaa
    aa
    a