다른 Pyth 연습을위한 시간. 여기에 Pyth 솔루션이있는 8 가지 문제 설명이 있습니다. 이 솔루션은 Pyth 초보자가 작성합니다. 그는 파이썬 솔루션보다 훨씬 짧기 때문에 이러한 솔루션에 매우 만족합니다. 그러나 당신의 임무는 그를 더 잘 보여주는 것입니다. 동등하지만 짧은 프로그램을 작성하십시오.
이것은 Pyth에서 골프를 칠 때 사용할 수있는 트릭과 최적화에 대한 도전입니다. Pyth 골퍼는 관련된 많은 트릭을 인식하여 솔루션이 더 짧아 질 수 있습니다. 그러나 일부 문제는 거의 사용되지 않는 비정상적인 접근 방식이 필요합니다. 내가 실제로 본 적이없는 몇 가지 트릭. 그러나 Pyth의 디자이너가 의도하지 않은 버그 나 이상한 행동이 필요한 솔루션은 없습니다. 모든 답변은 이 질문의 게시 시점에서 가장 최근의 Pyth 커밋 ( 2b1562b )에 유효해야합니다 . Pyth 통역사를 사용할 수 있습니다시험용. 현재 최신 상태이며 Pyth에서 큰 변화가 예상되지 않아 최적의 솔루션이 무효화되거나 더 짧은 솔루션이 가능해집니다. 온라인 통역사에도 새로운 문자 참조 기능이 있습니다. 꽤 새롭기 때문에 무언가 잘못되었거나 누락 된 경우 이전 문서를 사용할 수도 있습니다 .
목표 : 참조 솔루션은 총 81 바이트입니다. 당신의 목표는 가능한 한 많이 이길 것입니다. 가장 작은 총 바이트 수로 8 가지 문제를 모두 해결하는 제출이 우선합니다. Tiebreaker는 제출 날짜입니다.
물론 8 가지 문제에 대한 해결책을 포함하는 제출물 만 유효합니다. 하나 이상의 특정 문제의 점수를 향상시킬 수없는 경우 참조 구현을 사용할 수 있습니다.
솔루션은 참조 솔루션과 정확히 동일한 출력을 인쇄해야합니다. 선택적인 후행 줄 바꿈을 제외하고.
이것은 Pyth 연습이므로 Pyth 언어로 작성된 프로그램 만 허용됩니다.
답변 : 총점을 제외하고 전체 답변을 망치십시오. 자신의 의견을 제출하기 전에 다른 사람의 답변을 보지 마십시오. >를 넣어 스포일러를 만들 수 있습니다! 모든 줄 앞에 다음과 같이
>! Problem 1: V9m?>dNd0S9 (11 bytes)
>! Problem 2: VTN)VGN (7 bytes)
>! ...
너무 어렵거나 사소한 문제를 선택하지 않았기를 바랍니다. 많은 참가자들과 모두가 Pyth에 대한 새로운 통찰력을 얻기를 바라고 있습니다. 행복한 골프!
문제 1 :
다음 9x9 행렬을 만들어 인쇄하십시오.
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 0, 3, 4, 5, 6, 7, 8, 9]
[0, 0, 0, 4, 5, 6, 7, 8, 9]
[0, 0, 0, 0, 5, 6, 7, 8, 9]
[0, 0, 0, 0, 0, 6, 7, 8, 9]
[0, 0, 0, 0, 0, 0, 7, 8, 9]
[0, 0, 0, 0, 0, 0, 0, 8, 9]
[0, 0, 0, 0, 0, 0, 0, 0, 9]
참조 솔루션 ( 링크 ) :
V9m?>dNd0S9 (11 bytes)
문제 2 :
모든 숫자와 모든 문자를 별도의 줄에 인쇄하십시오.
0
...
9
a
...
z
참조 솔루션 ( 링크 ) :
VTN)VGN (7 bytes)
문제 3 :
사 전적으로 가장 작은 회문을 찾으십시오. 즉, 사전에 소문자를 포함하는 입력 문자열보다 크거나 같고 입력 문자열과 같습니다.
a -> a
abc -> aca
adcb -> adda
참조 솔루션 ( 링크 ) :
hf&gTzqT_T^Glz (14 bytes)
문제 4 :
숫자가 [0, 입력 번호) 범위에 있는지 확인하십시오. 이것은 수레에서도 작동합니다.
4, 6 -> True
5.5, 6 -> True
6, 6 -> False
6, 6.1 -> True
참조 솔루션 ( 링크 ) :
&gQ0<QE (7 bytes)
참조 형식은 to be tested value<newline>end value
입니다. 그러나 다른 입력 형식을 선택할 수 있습니다. 중요한 것은 문제 설명을 달성하고 올바른 결과를 생성하는 것입니다.
문제 5 :
"\ d + [a-zA-Z] +"형식의 입력 문자열을 구문 분석하십시오. 숫자는 숫자가 포함 된 문자열이 아니라 숫자 여야합니다.
'123Test' -> [123, 'Test']
참조 솔루션 ( 링크 ) :
A.ggk\Az,sGH (12 bytes)
문제 6 :
하나 이상의 쉼표로 구분 된 숫자의 합계를 계산하십시오. 문자열에 하나 이상의 숫자가 있다고 가정 할 수 있습니다.
11,2,,,3,5,,8 -> 29
참조 솔루션 ( 링크 ) :
svM:z",+"3 (10 bytes)
문제 7 :
숫자 0을 얻을 때까지 입력에서 양의 정수를 읽습니다. 모든 숫자의 합계를 인쇄하십시오.
참조 솔루션 ( 링크 ) :
WJE=+ZJ)Z (9 bytes)
문제 8 :
주 대각선의 요소 (왼쪽 위 모서리에서 오른쪽 아래 모서리)를 제외한 정사각 행렬의 모든 요소를 요약합니다.
참조 솔루션 ( 링크 ) :
-ssQs.e@bkQ (11 bytes)