몇 개의 주와 국경을 접하고 있습니까?


20

내가 어렸을 때, 나는 미국의 큰지도를 침대에서 건너 벽에 붙였습니다. 지루할 때, 나는 그지도를보고 물건에 대해 생각할 것입니다. 4 색 정리 나 다른 주와 접한 주와 같은 것들. 더 세게 계산할 때 뇌의 힘을 절약하기 위해 타임머신발명 하고 입력을 경계하는 주가 몇 개인 지 알려 드리겠습니다. 시간이 까다롭기 때문에 가능한 짧아야합니다.

작업

이 페이지 ( archive.org mirror )에서 볼 수 있듯이 미국의 50 개 주 중 하나의 이름이나 우편 약자로 보시면 국경이있는 주 수를 반환하십시오. 다음은 이 웹 사이트 에서 찾을 수있는 전체 상태 이름에 대한 모든 입력을 인접한 상태 수에 매핑 한 것입니다 .

Missouri, Tennessee -> 8
Colorado, Kentucky -> 7
Arkansas, Idaho, Illinois, Iowa, Nebraska, New York, Oklahoma, Pennsylvania, South Dakota, Utah, Wyoming -> 6
Arizona, Georgia, Massachusetts, Michigan, Minnesota, Nevada, New Mexico, Ohio, Virginia, West Virginia -> 5
Alabama, Indiana, Kansas, Maryland, Mississippi, Montana, North Carolina, Oregon, Texas, Wisconsin -> 4
California, Connecticut, Delaware, Louisiana, New Hampshire, New Jersey, North Dakota, Rhode Island, Vermont -> 3
Florida, South Carolina, Washington -> 2
Maine -> 1
Alaska, Hawaii -> 0

규칙

  • 귀하의 프로그램은 전체 주 이름 또는 우편 번호를 처리 할 수 ​​있습니다. 조합을 사용할 수 없습니다.
  • 입력의 대소 문자를 지정할 수 있지만 입력에서 공백을 제거 할 수 없습니다.
  • 워싱턴 DC 또는 50 개 주 중 하나가 아닌 것을 처리 할 필요는 없습니다.
  • 경계 상태의 수 에는 입력 상태가 포함 되지 않습니다 .
  • 이것은 이므로 바이트 단위의 최단 답변이 이깁니다.

나는 이것이 가장 좋은 압축을 가진 사람이거나 숫자 당 가장 좋은 정규식 패턴을 찾는 사람 일 수 있음을 알고 있지만, 그 답변을 너무 많이 받으면 미국지도를 생성하는 답변에 현상금을 부여하고 그것을 사용합니다. 경계 상태의 수를 계산하십시오.


11
inb4Mathematica 내장
DJMcMayhem

@DJMcMayhem 어 어 (처음에는 잘 들리지만 업데이트를 참조하십시오 ...)
Stephen

@StepHen 오 아니, 나는 추방 당했다! 나는 지금 이것을 통합하는 대답을 연구하고 있었다 ...;)
notjagan


우리가 DC를 처리 / 수에 포함시킬 수 있습니까?
notjagan

답변:


17

젤리 , 73 65 바이트

“U[“Ȥ“!÷2“®Ɓ⁵]StƁ}K“ʂÞiƬ¦.ÞrÆu“4œ(°fWg?Ʋd“Ɠ©“Œb‘i³OS%168¤$€Tµ’6L?

온라인으로 사용해보십시오!

내장? 누가 필요합니까? ( ʂÞiƬ혐오의 땅에).

같은 이름으로 입력을 "Idaho"받습니다.

작동 원리

“U[“Ȥ“!÷2“®Ɓ⁵]StƁ}K“ʂÞiƬ¦.ÞrÆu“4œ(°fWg?Ʋd“Ɠ©“Œb‘i³OS%168¤$€Tµ’6L?
“U[“Ȥ“!÷2“®Ɓ⁵]StƁ}K“ʂÞiƬ¦.ÞrÆu“4œ(°fWg?Ʋd“Ɠ©“Œb‘                   The literal list of code-page index lists  [[85, 91], [154], [33, 28, 50], [8, 143, 133, 93, 83, 116, 143, 125, 75], [167, 20, 105, 152, 5, 46, 20, 114, 13, 117], [52, 30, 40, 128, 102, 87, 103, 63, 153, 100], [147, 6], [19, 98]]
                           €        On each sublist:
                         ¤            Evaluate the hash value:
                 ³                     Input
                   O                   Character values
                    S                  Sum.
                     %                 Modulus.
                      168              168
                i                     Does the sublist contain that nilad?
                            T       Get the sublist which does contain that nilad.
                                 ?  If
                                L     Length.
                                    Then
                             ’        Return the index - 1
                                    Else
                              6      Return 6

그 목록을 얻기 위해 어떤 프로세스를 사용 했습니까?
Scott Milner

2
@ScottMilner 나는 OS%168각 주를 운영했으며 직접 목록을 작성했습니다. 나는 250 이하의 모든 가능성을 무차별 적으로 적용하여 상수 168을 발견했으며, 각기 다른 수의 경계를 실제로 구별 할 수 있는지 확인했습니다. 168(다른 몇 가지 중에서도) 작동했으며 48충돌로 인해 값 을 하드 코딩 해야하는 이점이있었습니다 .
fireflame241 '

18

매쓰, 112 111 바이트

Mark S.LegionMammal978 덕분에 -5 바이트 !

ngenisis 덕분에 -22 바이트 (및 출력에 문제가 있음) !

Tr[1^Entity["AdministrativeDivision",#~StringDelete~" "]@"BorderingStates"]+Boole@StringMatchQ[#,"Il*"|"Mic*"]&

물론 Mathematica가 내장되어 있습니다. 카운트에 DC를 포함합니다.


3
더럽게 느껴지지만 AdministrativeDivision너무 길어서 Length [x = "AdministrativeDivision"~ Entity ~ StringDelete [ ""] @ # ~ ToExpression [x <> "Data"] ~ "BorderingStates"] &
Mark S.

1
ToExpressionSymbol올바르게 기억하면으로 바꿀 수 있습니다 .
LegionMammal978

1
또한을 사용할 필요는 없으며 엔터티에 인수로 AdministrativeDivisionData전달 "BorderingStates"하면됩니다. 예Entity["AdministrativeDivision","Alaska"]["BorderingStates"]
ngenisis

1
@ ngenisis 첫 번째 문제에 대한 수정 사항을 적용했습니다. 다행히 귀하의 제안으로 인해 많은 바이트를 추가하지 않았습니다. DC와 관련하여 언급 한 후자의 문제는 OP가 이것이 유효하고 응답이 예인지 여부를 물었으므로 문제가 아닙니다.
notjagan

1
@notjagan 다른 바이트를 저장하는 Tr[1^...]대신 사용할 수도 있습니다 Length@....
ngenisis

13

자바 스크립트 (ES6) 115 113 바이트

편집 : Step Hen Python answer 에서 2 개의 문자열 최적화를 빌려 2 바이트를 절약했습니다 . 처음 시도했을 때보고 싶었습니다.

우편 번호를 입력으로 사용합니다.

s=>('7KYCO8MOTN0AKHI1ME2FLSCWA3CACTNDELANHNJRIVT4ALWINCKSMDMSMTXOR5GAZOHMANMIMNVWVA'.match('.\\D*'+s)||'6')[0][0]

방법?

.match()메서드에 전달 된 비 RegExp 인수 는 암시 적으로 RegExp 개체로 변환됩니다. 따라서 /.\D*{{input}}/인코딩 된 문자열 에서 정규식을 테스트하고 있습니다. 이것은 숫자 (1) 과 일치하고 0에서 N이 아닌 숫자가 아닌 문자와 입력 이 일치합니다 .

예를 들어, 입력이 "NH"(New Hampshire) 인 경우 일치하는 문자열은입니다 "3CACTNDELANH". 이 문자열의 첫 문자를 그대로 유지하거나 "6"일치하지 않는 경우 기본적으로 반환 합니다.

(1) : .은 실제로 모든 문자와 일치하지만 문자열은 문자 그룹 이전에 발견되는 문자가 항상 숫자가되는 방식으로 작성됩니다.

데모


해시 버전, 115 바이트

동일한 입력 형식.

s=>`04436303035050063062750600644408${6e7}503600300540410005207058036442600400000650035`[parseInt(s,33)%589%180%98]

데모


그 문자열을 btoaing하여 많은 바이트를 절약 할 수 있습니다
Downgoat

7

파이썬 (3) , 168 (154) 153 (137) 바이트

lambda s:[i for i,S in enumerate('AKHI ME FLSCWA CACTLANHNJNDERIVT ALWINCKSMDMSMTXOR MAZOHGANMIMNVWVA A KYCO MOTN'.split())if s in S]or 6

온라인으로 사용해보십시오!

isaacg 덕분에 -4 바이트

ETHProductions 덕분에 -10 바이트

notjagen 덕분에 -1 바이트

다른 답변과 마찬가지로 기본값을 6으로 설정하여 더 많은 바이트를 절약했습니다.

TIO에는 테스트가 포함됩니다. 우편 번호로 입력을받습니다. 가능한 경우 함께 뭉개져 (예 : WVVA로 저장 됨 WVA) 각 세트에 대한 문자열로 상태 이름 목록을 생성합니다 . lambda 함수는 문자열에 입력이 포함 된 목록의 인덱스를 가져옵니다. 골프에 대해 기능의 본문을 모르는 방법이있을 수 있습니다. 정수를 포함하는 목록으로 출력- [0]람다 끝에 추가 하여 정수로 출력합니다.


또한 l한 번만 사용 하므로 인라인 할 수도 있습니다.
isaacg

@ETHproductions 네, 감사합니다
Stephen

@isaacg 감사합니다, dunno 왜 보지 못했을까요
Stephen

Texas의 위치를 ​​재정렬하여 -1 바이트
notjagan

@ notjagan 고마워요, 그리워
Stephen

4

V , 143 바이트

çourüee/C8
çdoüke/C7
çrküI„sn]üebüOkünnsüSDüUüwy/C6
çzüg„ot]üttüinnüvaüxiüOh/C5
çbüdiüKüMáû5}üNCüOüTüWi/C4
ç^[CDLNRV]/C3
ç[FSW]/C2
çM/C1
ñlS0

온라인으로 사용해보십시오!

16 진 덤프 :

00000000: e76f 7572 fc65 652f 4338 0ae7 646f fc6b  .our.ee/C8..do.k
00000010: 652f 4337 0ae7 726b fc49 8473 6e5d fc65  e/C7..rk.I.sn].e
00000020: 62fc 4f6b fc6e 6e73 fc53 8144 fc55 fc77  b.Ok.nns.S.D.U.w
00000030: 792f 4336 0ae7 7afc 6784 6f74 5dfc 7474  y/C6..z.g.ot].tt
00000040: fc69 6e6e fc76 61fc 7869 fc4f 682f 4335  .inn.va.xi.Oh/C5
00000050: 0ae7 62fc 6469 fc4b fc4d e1fb 357d fc4e  ..b.di.K.M..5}.N
00000060: 8143 fc4f fc54 fc57 692f 4334 0ae7 5e5b  .C.O.T.Wi/C4..^[
00000070: 4344 4c4e 5256 5d2f 4333 0ae7 5b46 5357  CDLNRV]/C3..[FSW
00000080: 5d2f 4332 0ae7 4d2f 4331 0af1 6c53 30    ]/C2..M/C1..lS0

나는 당신이 우편 번호로 입력을받을 수 있다는 것을 깨닫기 전에 이것을 썼습니다. 실제로 더 짧은 지 확실하지 않습니다 :shrug:. 이 답변은 정규식을 사용하여 특정 상태를 검색 한 다음 일치하는 경우 입력을 특정 숫자로 변경합니다. 그러나 테스트 한 상태 수가 증가함에 따라 사용할 수있는 최소 검색 수가 감소합니다. 예를 들어, 와 C일치하므로 검색 할 수 없습니다 . (Conneticut 및 Carolinas와 마찬가지로) 그러나 경계가 3 개 이상인 모든 주를 테스트 한 후에는 더 이상 이전과 일치 할 수 없으므로 C시작하는 항목 만 검색 할 수 있습니다.ColoradoCalifornia

테스트 할 시간이 없어서 몇 가지 테스트 사례가 잘못되었을 수 있습니다. 잘못된 출력을 찾으면 알려주십시오. :)


3

자바 스크립트, 153 바이트

MO=TN=8;CO=KY=7;AZ=GA=MA=MI=MN=NV=NM=OH=VA=WV=5;AL=IN=KS=MD=MS=MT=NC=OR=TX=WI=4;CT=DE=LA=NH=NJ=ND=RI=VT=3;FL=WA=2;ME=1;AK=HI="0";alert(self[prompt()]||6)

가변 체인. 그래도 더 좋은 방법이 있다고 확신합니다.

Discord의 누군가의 제안 덕분에 출력은 기본적으로 가장 일반적인 경계 상태 수인 6으로 설정됩니다. 183 바이트 ~ 151 바이트

어떤 제안자는 AK와 HI에서 이것이 실패한다고 지적 했으므로 문제를 해결하기 위해 2 바이트를 추가했습니다. 151 ~ 153 바이트


1
나는이 실패 확신 AK하고 HI있기 때문에 0||6잘못된 출력 6로 평가.
kamoroso94 9

더 나은 수정이 있다고 생각되면 내 코드를 업데이트했습니다.
엘리 리처드슨

3

05AB1E , 78 72 바이트

.•n£þuγ{çâ/₁=èó[nK™ΩFîÀî˜Çʒ÷¿ηZ¬³ã®ÿΣÔ¢*5ŠÜ‚!¶Ö¾#}ê(Ûø‰¢þL[Æ₁cgIkö•s¡¬ð¢

온라인으로 사용해보십시오!


.•n£þuγ{çâ/₁=èó[nK™ΩFîÀî˜Çʒ÷¿ηZ¬³ã®ÿΣÔ¢*5ŠÜ‚!¶Ö¾#}ê(Ûø‰¢þL[Æ₁cgIkö•
# Push the string: akhi me flscwa cactdelanhnjndrivt alinksmdmsncmtortxwi azgamamimnnvnmvaohwv idilianarenyokpnsdutwy kyco motn

s¡    # Split on input.
  ¬   # Get head.
   ð¢ # Count number of spaces.

상태 약어의 순서에 따라 상태 간 겹침에 NO 상태가 발생할 수 있기 때문에이 기능 만 작동합니다.

a[kh]i 
me 
f[ls][cw]a 
c[ac][td][el][an][hn][jn][dr][iv]t 
a[li][nk][sm][dm][sn][cm][to][rt][xw]i 
a[zg][am][am][im][nn][vn][mv][ao][hw]v 
i[di][li][an][ar][en][yo][kp][ns][du][tw]y 
k[yc]o 
m[ot]n

배열을 올바르게하기 위해 잠시 걸렸습니다 ... 그런 다음 입력을 분할하고 첫 번째 부분의 공백을 세면 올바른 결과를 얻습니다.


다른 답변에서 "default to 6"을 훔치면 65 바이트가됩니다.

05AB1E , 65 바이트

.•3θ0ÔÕ—ú^?D§:‚A†ǝλα“i›p‚ιCöΔƒñPŠ J€ŽãB»ΣUƤÆuhÃgЦ,Y²•s¡¬ð¢D9Qi6

온라인으로 사용해보십시오!


Took awhile to get the arrangement right-> 오, 나는 당신이 내 대답에서 그것을 복사했을 수 있다고 생각합니다 (내가 올바르게 읽는다면)
Stephen

@Stephen 글쎄, 나는 다른 게시물에서 아이디어를 얻지 못했습니다. 만약 "매끄러운 해싱 알고리즘"을 보면 1 시간 동안 해싱에 대한 임의의 아이디어로 엉망이었고 공백에 대해 생각했습니다. 아무리 노력해도 그 구현을 이길 수 있습니다.
Magic Octopus Urn

@Stephen은 이제 당신을 읽었으므로 기본값 6 xD에 대해서도 생각했으면 좋겠습니다.
매직 문어 Urn

1
나는 그것을 생각하지 않았고, 나는 이 대답에서 그것을 처음 보았으므로 그것을 자유롭게 가져 가라. : P
Stephen

2

망막 , 106 105 바이트

MO|TN
8
CO|KY
7
AK|HI
0
ME
1
FL|WA
2
[CDLR].|N[HJD]|VT
3
.[CSX]|AL|IN|MD|MT|OR|WI
4
[GMV].|.[HMVZ]
5
..
6

온라인으로 사용해보십시오! 누군가 정규식이라고 했습니까? 편집 : @ Arnauld 덕분에 1 바이트가 절약되었습니다.


2

자바 스크립트 (ES6), 195 바이트

s=>/las|ii/[t='test'](s)?0:/ai/[t](s)?1:/Fl|Wa|S.*C/[t](s)?2:/fo|ct|de|ui|mp|er|^N.+ak/i[t](s)?3:/do|ck/[t](s)?7:/ur|ee/[t](s)?8:/iz|gi|ch|ev|xi|hi|es/[t](s)?5:/rk|ah|oi|ow|br|om|lv|ak/[t](s)?6:4

주의 전체 이름에 적용되는 일련의 정규식.

테스트 사례 :


2

젤리 ,  61  59 바이트

OP%⁽/r%101eЀ“¿=“þ“(7“¡¦ðø,0@L“€ç÷<CMZa“Ø!)5HNV““1^“¥+‘Tȯ7’

전체 상태 이름을 가져 와서 결과를 인쇄하는 전체 프로그램

온라인으로 사용해보십시오! 또는 테스트 스위트를 참조하십시오.

방법?

“¿=“þ“(7“¡¦ðø,0@L“€ç÷<CMZa“Ø!)5HNV““1^“¥+‘

코드 페이지 색인 목록입니다.

[[11,61],[31],[40,55],[0,5,24,29,44,48,64,76],[12,23,28,60,67,77,90,97],[18,33,41,53,72,78,86],[],[49,94],[4,43]]

“ ... ‘아래와 같이 표시됩니다 .

OP%⁽/r%101eЀ“ ... ‘Tȯ7’ - Main link: list of characters, stateName  e.g. Ohio
O                        - cast to ordinals                   [79,104,105,111]
 P                       - product                                    95757480
   ⁽/r                   - base 250 literal                              12865
  %                      - modulo by 12865                                3285
      %101               - modulo by 101                                    53
             “ ... ‘     - list of lists of code-page indices
          eЀ            - map: exists in?                 [0,0,0,0,0,1,0,0,0]
                    T    - truthy indices (if none yields an empty list)   [6]
                     ȯ7  - logical or with 7 (replace empty list with 7)   [6]
                       ’ - decrement                                       [5]
                         - implicit print (Jelly's representation of a list of
                         -                 one item is just that item)       5

1

엑셀 VBA, 177 154 147 바이트

String범위의 상태에서 우편 번호를 나타내는 예상 유형의 입력을 가져와 해당 상태 [A1]Integer경계를 이루는 상태 수를 나타내는 익명 VBE 함수입니다 .

For i=0To 8:r=r+IIf(Instr(1,Split("AKHI ME FLSCWA CACTLANHNJNDERIVT ALWINCKSMDMSMTXOR MAZOHGANMIMNVWVA | KYCO MOTN")(i),[A1]),i,0):Next:?IIf(r,r,6)

이전 버전

154 바이트 :

For Each s in Split("AKHI ME FLSCWA CACTLANHNJNDERIVT ALWINCKSMDMSMTXOR MAZOHGANMIMNVWVA | KYCO MOTN"):r=r+IIf(Instr(1,s,[A1]),i,0):i=i+1:Next:?IIf(r,r,6)

177 바이트 :

[2:2]=Split("AKHI ME FLSCWA CACTLANHNJNDERIVT ALWINCKSMDMSMTXOR MAZOHGANMIMNVWVA A KYCO MOTN"):[3:3]="=IfError(If(Find($A1,A2),Column(A3)),"""")":[B1]="=Sum(3:3)":?[If(B1,B1,6)]

가독성을위한 형식

[2:2]=Split("AKHI ME FLSCWA CACTLANHNJNDERIVT ALWINCKSMDMSMTXOR MAZOHGANMIMNVWVA | KYCO MOTN")
[3:3]="=IfError(If(Find($A1,A2),Column(A3)-1),"""")"
[B1]="=Sum(3:3)"
?[If(B1,B1,6)]

1

파이썬 2, 363 218 바이트

lambda a:dict(WA=2,WI=4,WV=5,FL=2,NH=3,NJ=3,NM=5,NC=4,ND=3,RI=3,NV=5,CO=7,CA=3,GA=5,CT=3,OH=5,KS=4,SC=2,KY=7,OR=4,DE=3,HI=0,TX=4,LA=3,TN=8,VA=5,AK=0,AL=4,VT=3,IN=4,AZ=5,ME=1,MD=4,MA=5,MO=8,MN=5,MI=5,MT=4,MS=4).get(a,6)

간단한 약간 최적화 된 하드 코딩 된 답변으로 시작하겠습니다 . 우편 번호를 입력으로받습니다.

bfontaine 덕분에 -145 바이트


4
dict(MO=8,TN=8,...)대신을 사용하여 거의 100 바이트를 절약 할 수 있습니다 {'MO':8,'TN':8,...}. 그런 다음 .get(a,6)6 개의 다른 상태와 접하는 상태를 사용 하고 제거 하여 거의 50 바이트를 절약 할 수 있습니다 . 그 두 가지 트릭으로 219로 떨어질 수 있습니다.
bfontaine

더 대신 공간을 사용하여 일부 저장 @Mitch .과 일을 split()(내 생각)
스티븐

@Mitch 당신은 심지어 기간이 필요합니까? 목록을 2 개의 그룹으로 나누는 방법이 있습니까?
매직 문어 Urn

사용하여 더 많은 바이트를 절약 할 수 있다고 생각합니다 dict((i[0]+i[1],int(i[-1])) for i in zip(*[iter("WA2WI4WV5FL2...")]*3)). 또한 int문자열로 출력 할 수 있다면 아마도 그것을 벗어날 수 있습니다.
Izaak van Dongen

실제로 포장 풀기를 사용하면 할 수 dict((a+b,int(c)) for a,b,c in zip(*[iter("WA2WI4WV5...")]*3))있습니다. 죄송합니다, 조금 결정적이지 않습니다 : D
Izaak van Dongen

1

PowerShell , 187 바이트

param($a)$x=($b=" MO8TN8CO7KY7AZ5GA5MA5MI5MN5NV5NM5OH5VA5WV5AL4IN4KS4MD4MS4MT4NC4OR4TX4WI4CA3CT3DE3LA3NH3NJ3ND3RI3VT3FL2SC2WA2ME1").IndexOf($a);if($x+1){$b[$x+2];exit}6-6*($a-in'AK','HI')

온라인으로 사용해보십시오!

더 좋은 방법이 있다고 확신하지만 여기에 내가 제시 한 접근 방식이 있습니다.

입력 을 받아 긴 상태 / 국경 조합의 문자열에서 발생 $a을 가져옵니다 .IndexOf. 프로세스에 $x문자열을 저장합니다 $b. 그런 다음 if일치하는 항목을 찾았는지 확인하고 해당하는 경우 숫자로 색인 한 다음 exit. 그렇지 않으면 우리는 6상태 중 하나 이거나 AK또는 HI이므로 상태 $a중 하나 인지 여부를 확인 0하고 필요한 경우 빼는 논리를 수행 합니다. 어쨌든, 그것은 파이프 라인에 남아 있으며 출력은 암시 적입니다.


1

파이썬 3, 729 733 바이트

입력을 우편 약어로 사용합니다. 이것은 골프 도전에 대한 나의 첫 번째 시도이며, 이것은 내가 지옥 같은 접근 방식으로 얻을 수있는 가장 짧은 것입니다. 나는 그것이 엄청나다는 것을 알고 있습니다-그것을 생각하게되면 아마도 if-else진술 로 더 나았을 것입니다 .

lambda s:sum((i-32)*96**j for j,i in enumerate(b'`*g$<#?wP\\.=)kuDbk$yvv\\D:Nh:cd/Pj, e*[_yXGz6lR<$jMo0qUU*7(Dua3-ThO}iX6VWRYDv=<K$8mVbYK9ld);TFB/m\'NE3ow4./pUsI5yJrwYrM4@e6\\kHJ%q8NA3>fb!~-rtwsRW=RBni}Y7T^gD\\IoxzJf.%|1.&4*"$%Q+).|8p(vcJ]cLRGUyC2eF:<Q4!_)y\\<`tr2A[z7re6OaR["2PRv\x7f,bRE [XrvtA<R<UlS23on?Byym&uy{XuB\x7fIMfh<y&waHElg-vk:4*on\x7f@?Ai5=2swfZSBF.PjkL{,|=,M<Bw"w,e@f`aKnmh\'xgg1#b4En\x7f+*\'g_ZRoeN*Q]mX\'>RoGc~ZP~e&{Hwo6bd<](hV)=l9#[f<Gj,#Ea!nJnL=9k"M,`bP2PsP6(eJoGEU>GA?,BpS}"RzzdMRtL[cre;\\tld^xT\':pry\'Nu_*R}eYg_U!Ld{p7<f:95lD]OBMX(r"Jg\'|%Cq"`Qy9g0aNrtYP9dnPRRr3\'yT(CE~\\&@5#tMLZ+a:V5NNXVp+Uy61s9$=Vb99(!ga7f7x}#=*]q.\x7f0R+f[*m:i^qe#D 8M&W\x7faGmCNCU9"~1Pj!]2r5 H>rYPqwfg4cFG*3-(z'))>>(5*int(s,36)-1850)&15

방금 3 문자 변수 이름의 고급 스러움을 4 바이트 줄였습니다.


PPCG에 오신 것을 환영합니다! 다른 파이썬 답변에서 볼 수 있듯이 때로는 더 간단한 솔루션이 더 짧습니다. : P
Stephen

네, 죄책감의 즐거움이 "코드를 간결하게 읽을 수 없게 만드는 것"이라는 점을 고려할 때이 모든 노력을 정말 좋아합니다.
Zacharý
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.