많은 프로그래밍 언어는 인쇄 가능한 ASCII, 탭 및 줄 바꿈 만 사용하여 작성됩니다. 이 97 문자는 8 비트 바이트 (실제로 256 개의 다른 문자를 보유 할 수 있습니다!)에 저장됩니다. 이는 매우 비효율적입니다. 특히 모든 코드가 계산되는 코드 골프에서! 이 도전에서, 당신은 기본 전환을 사용하여 점수를 줄일 수 있습니다.
도전
프로그램 / 함수는 문자열 또는 문자형 배열을 입력으로 사용하여 기본 97 숫자 로 해석 합니다. 그런 다음 이것을 기본 -256 숫자 로 변환하고이 숫자를 나타내는 데 필요한 기호 수 (예 : 바이트)를 계산합니다. 이 카운트는 프로그램 / 기능의 출력 / 반환 값이됩니다.
base-2 및 base-10 (2 진 및 10 진수)을 사용하는 간단한 예 : 입력이 10110
인 경우 10110 2 = 22 10 (출력을 나타내는 데 필요한 두 자리 숫자) 이므로 출력은 2 입니다. 마찬가지로 1101 2 는 13 10 이되고 2 의 출력도 제공하고 110 2 는 6 10 이되므로 출력은 1이됩니다.
입력 문자열에는 95 개의 인쇄 가능한 ASCII 문자와 줄 바꿈 \n
및 리터럴 탭이 포함되어 기본 변환을위한 97 개 문자 \t
의 소스 알파벳 을 만듭니다 . 정확한 알파벳 따라서됩니다 합니다 (대체 \t
및 \n
실제 문자 탭과 줄 바꿈으로, 참고 개행 다음 문자 그대로의 공간) :
\t\n !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
이 알파벳의 순서는 중요합니다. 예를 들어 base-97 \t
은 decimal 0
에 !
해당하고 decimal에 해당합니다 3
.
일부 테스트 사례 : (빈 문자열을 처리 할 필요가 없습니다)
Input Output
'example@domain.com' 15
'All your base are belong to us!' 26
' abcd' 9
'~ abcd' 10
'ABCDEFGHIJK' 9
'zyxwvutsrpq' 10
'{".~"}.~' 7
'\t\t\t\t\t\t\t\t' 1 (with \t a literal tab; the result is 0, which can be represented with 1 byte)
'!\t\t\t\t\t\t\t\t' 7 (with \t a literal tab)
채점
입력 항목에 인쇄 가능한 ASCII, 줄 바꿈 및 / 또는 탭만 사용하는 경우 : 자체 소스 코드가 입력되면 프로그램의 점수가 프로그램의 출력이됩니다.
항목에 인쇄 할 수없는 ASCII, 줄 바꿈 또는 탭이 아닌 문자가 사용 된 경우 : 프로그램의 점수는 code-golf 와 같이 바이트 수입니다 .