학교 시즌으로 돌아 왔습니다! 아르바이트를 위해 학교 도서관에서 도움을 받고 있습니다. 문제는 헤드 사서가 "Dewey Decimal"이라는 단어를 들어 본 적이 없다는 것입니다. 대신, 라이브러리가 확장됨에 따라 사용중인 정렬 시스템이 "유기적으로"커졌습니다.
정신 건강을 유지하기 위해 책을 잘못 정렬하면 책을 돌려 줄 때 도움이되는 프로그램을 작성하기로 결정했습니다. (본 사서는 매우 엄격합니다.)
입출력
- 입력은 STDIN / 언어에 해당하는 (가설 적) 책 제목 (한 줄에 하나씩) 목록입니다.
- 한 번에 100 권 이하의 책을 입력 할 수 있습니다 (라이브러리 주변에는 한 번에 너무 많은 책을 소지 할 수 있습니다).
- 책에는 제목에 여러 단어가있을 수 있으며 이러한 단어는 공백이나 다른 문장 부호 (예 : 콜론
:
, 대시-
등) 로 구분할 수 있습니다 . - 계산이 쉽도록 모든 제목이 UTF-8이라고 가정하십시오.
출력은 동일한 제목이며, 아래 규칙에 따라 다시 한 줄에 하나씩 STDOUT / 언어로 분류됩니다.
정렬 규칙
책은 평균 문자 값 (즉, 책 제목의 문자 수를 나눈 누적 문자 값)에 따라 숫자로 정렬되며 다음 규칙에 따라 계산됩니다.
- 모든 문자는 제목의 문자 수를 결정하기 위해 계산됩니다.
- 소문자는 알파벳에서의 위치로 계산됩니다. (a = 1, b = 2, ... z = 26)
- 제목에 대문자가 포함 된 경우 소문자 값이 1.5로 계산됩니다 (A = 1.5, B = 3, ... Z = 39). 사서는“자본 문자가 중요합니다!”라고 말합니다.
- 이 목록의 각 문장 부호 / 기호는
!@#$%^&*()-=_+[]\{}|;':",./<>?~
평균을 계산하기 전에 누적 값에서 -1을 계산합니다. ( "Grandiose 타이틀은 아닙니다!") - 제목에 아라비아 숫자로 작성된 숫자가 포함 된 경우 정렬하기 전에 해당 숫자가 평균값에서 빼집니다. 여러 개의 연속 숫자는 하나의 숫자로 취급됩니다 (예 :
42
4를 빼고 2를 빼지 않고 42를 뺍니다). 개별 숫자는 누적 값으로 계산되지 않으며 (즉, 각 숫자는 0을 제공함) DO 문자 수는 계산합니다. 이는 음수 값을 초래할 수 있으므로 적절하게 처리해야합니다. (소문에 따르면, 사서는 현재 수년간 수학 강사에게 호감을 가졌습니다.) - 제목에으로 시작하는 두 개의 개별 단어가 포함 된 경우,
R
책은 "무한대"점수를 받고 모퉁이의 더미에 덤핑됩니다 (즉, 목록의 끝에 임의로 정렬 됨). (사서에는 이니셜이있는 사람이 한 번 버려 두었으므로 들었습니다.) - 공백은 누적 문자 값 (즉, 0을 기여)으로 계산하지 않지만 DO는 제목의 문자 수에 기여합니다.
- 위 규칙에 맞지 않는 문자 (예 : a
ÿ
)는 누적 문자 값 (즉, 0을 기여)에 포함되지 않지만 DO는 제목의 문자 수에 기여합니다. - 예를 들어, 가상 책
ÿÿÿÿÿ
은 "점수"를(0+0+0+0+0) / 5 = 0
갖지만 가상 책ÿÿyÿÿ
은 "점수"를 갖습니다(0+0+25+0+0) / 5 = 5
. - 동일한 점수를 매기는 두 권의 책을 원하는 순서대로 출력 할 수 있습니다. (어쨌든 그들은 같은 선반에 있습니다)
입력 예 1
War and Peace
Reading Rainbow: The Best Unicorn Ever
Maus
Home for a Bunny
출력 예 1 (추론을 표시하기 위해 괄호 안에 "점수"가 있음-인쇄 할 필요가 없음)
War and Peace (8.5)
Home for a Bunny (10.125)
Maus (15.125)
Reading Rainbow: The Best Unicorn Ever (infinity)
입력 예 2
Matthew
Mark
Luke
John
Revelations
출력 예 2 (추론을 나타 내기 위해 괄호 안에 "점수"가있는 경우 인쇄 할 필요가 없습니다)
Mark (12.375)
John (13)
Revelations (13.545454...)
Luke (13.75)
Matthew (~13.786)
입력 예 3
42
9 Kings
1:8
7th
출력 예 3 (추론을 나타 내기 위해 괄호 안에 "점수"가있는 경우 인쇄 할 필요가 없습니다)
42 (-42)
1:8 (-9.3333...)
9 Kings (~0.36)
7th (2.3333...)
다른 제한
- 이것은 사서의 끊임없는 시선에서 프로그램을 비밀로 유지해야하기 때문에 코드 골프입니다. 프로그램이 작을수록 숨기는 것이 더 쉽습니다.
- 표준 허점 제한이 적용됩니다
- PPCG에 모든 시간을 투자하여 사서가 당신을 느슨하게 잡지 못하게하십시오.