피 이스 연습 2


21

다른 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)

언어 별 질문에 대한 아이디어가 정말 마음에 듭니다. 그러나 PPCG에서 언어 별 질문이 뿌연다고 생각 했습니까?
Luis Mendo

3
@LuisMendo 나는 질문에 대한 이유가 CJam, Pyth와 같은 골프 언어에 대해 일반적으로 싫어하는 경우 또는 OP가 특정 언어 만 이해하기 때문에 언어 별 질문이 싫은 것 같아요. 여기가 조금 다릅니다. 이 질문은 주로 인기있는 (PPCG) 언어의 더 숨겨진 기능 중 일부를 보여주기 위해 고안되었습니다. 어떤 식 으로든 그것은 마술의 모음과 같습니다. 모든 언어에 적용 할 수는 없습니다.
여기이

6에서 숫자는 양의 한 자리 정수입니까?
xnor

@xnor 양수라고 가정 할 수 있지만 둘 이상의 숫자로 구성 될 수 있습니다. 테스트 사례를 변경하겠습니다.
Jakube

1
그것 때문에 내가 오프 주제로이 질문을 닫습니다 투표를하고있어 부품 사이에 상호 작용이 여러 부분으로 도전
pppery

답변:


9

59 58 56 바이트

문제 1 :

j.tmLdS9Z (9 바이트)

문제 2 :

MTjG (5 바이트) (첫번째 문자는 개행 문자입니다)

문제 3 :

h.f_IZ1z (8 바이트)

문제 4 :

%IQE (4 바이트)

문제 5 :

,J.vz-zJ (8 바이트)

문제 6 :

srXz\,d7 (8 바이트)

문제 7 :

u+GE0 (5 바이트)

문제 8 :

ss.DR~hZQ (9 바이트)


2

66 바이트

1. 10 바이트 : V9+mZN}hN9
2. 6 바이트 : jUT)jG
3. 8 바이트 : h.f_IZ1z
4. (참조 구현) 7 바이트 : &gQ0<QE
5. 11 바이트 : ,sK-rzZG-zK
6. 7 바이트 : ssMcz\,
7. 8 바이트 : s<.Qx.QZ
8. 9 바이트 :ss.eXbkZQ


2

68 67 66 65 바이트

작업 1

10 바이트 : V9m*d>dNS9

작업 2

5 바이트 : 개행은 \nMTjG어디\n

작업 3

9 바이트 : h.fqZ_Z1z

작업 4

5 바이트 : qQ%QE

작업 5

참조 솔루션, 12 바이트 : A.ggk\Az,sGH

작업 6

7 바이트 : ssMcz\,

작업 7

8 바이트 : s<.Qx.Q0

작업 8

9 바이트 : ss.DVQUlQ


1

54 바이트

의도 된 솔루션은 다음과 같습니다. 작업 8을 제외한 모든 솔루션이 발견되었습니다.

1. 왼쪽 맵에 맵을 사용하여 j.tmLdS9Z (9 바이트)를
바꾼 후 0으로 채 웁니다 . 2. \ nMTjG (5 바이트)는 맵
3에 줄 바꿈을 사용합니다. h.f_IZ1z (8 바이트)는 .f
4로 가능한 문자열을 생성합니다. % IQE (4 바이트)는 불변 연산자에 2 개의 매개 변수
5가 필요한 유스 케이스를 찾았습니다 ., J.vz-zJ (8 바이트) .v는 문자열의 첫 번째 명령문 만 평가하고 나머지
6 은 무시합니다 . ssMcz \, ( 7 바이트) s ""= 0
7. u + GE0 (5 바이트)는
알려진 숫자 8에 도달 할 때까지 줄입니다. ss.DVQUQ (8 바이트)는 벡터화를 사용하여 대각선을 삭제합니다.


젠장, 내가 깜빡 U했다 l리스트에!
lirtosiast

1
자신의 언어로 isaacg를 때리는 것이 좋습니다.
Stan Strum

1

 60 59  57 바이트

1. 9 바이트 :j.tmRdS9Z


2. 6 바이트 :jbUTjG


3. 8 바이트 :h.f_IZ1z


4. 4 바이트 :}sEU


5. 8 바이트 :,K.vz-zK


6. 7 바이트 :ssMcz\,


7. 8 바이트 :s<FxB.Q0


8. 11 10 7 바이트 : ss.DVQU 이전 버전 :ss.e+<bk>bh

나는 파티에 상당히 늦었지만 다른 솔루션과 완전히 독립적 으로이 솔루션을 개발했습니다 .


좋은 시도입니다. 세 번째 문제는 8 바이트입니다.
Jakube

그리고 나는 문제 8에 대한 해결책이 당시에 컴파일되지 않았다는 것을 확신합니다. 그러나 나는 그것을 테스트하지 않았습니다.
Jakube

@Jakube 아, 감사합니다!
Mr. Xcoder
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.