W x H 자릿수에서 가장 큰 N 자릿수를 찾습니다.


25

양의 정수 N과 너비 W와 높이 H (양의 정수임)의 십진 자릿수 (0-9)를 취하는 프로그램 또는 함수를 작성하십시오. N이 W와 H보다 크거나 같다고 가정 할 수 있습니다.

눈금에 가로 또는 세로로 나타나는 최대 연속 N 자리 숫자를 인쇄하거나 반환합니다 (일반 읽기 순서 또는 역순으로 표시).

  • 대각선의 자릿수 줄은 고려되지 않습니다.
  • 그리드는 둘러싸이지 않습니다. 즉, 주기적 경계 조건이 없습니다.

예를 들어 3 × 3 그리드

928
313
049

9N = 1에 94대한 출력, N = 2에 940대한 출력 및 N = 3에 대한 출력을 갖습니다 .

4 × 3 그리드

7423
1531
6810

했을 8N = 1에 대한 출력으로서 86N = 2, 854N = 3 및 7423N = 4에 대한.

3 × 3 격자

000
010
000

1N = 1, 10N = 2 및 N = 3에 대한 출력 을 갖습니다 (N = 3 010에도 유효 함).

1 × 1 그리드

0

0N = 1에 대한 출력 을 갖습니다 .

편리한 형식으로 입력 할 수 있습니다. 예를 들어, 그리드는 줄 바꾸기로 구분 된 문자열, 다차원 배열 또는 숫자 목록 등이 될 수 있습니다. 그리드의 일부인 경우 선행 0이 출력에 허용됩니다.

이것은 이므로 바이트 단위의 가장 짧은 코드가 승리하지만 알고리즘이 계산적으로 효율적이라는 것을 나타낼 수있는 답변에 브라우니 포인트 (즉, 가능성이 높은 투표)를 부여합니다.


1
선행 0을 인쇄 할 수 있습니까?
PurkkaKoodari

@ Pietu1998 "그리드의 일부인 경우 출력에 리드 제로가 허용됩니다."
Calvin 's Hobbies

답변:


0

Pyth, 22 19 바이트

Jakube 덕분에 3 바이트.

seSs.:RQ.n,L_MdCB.z

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

선행 0을 인쇄 할 수 있으면 코드는 18 바이트입니다.

eSs.:RQ.n,L_MdCB.z

앞에 0이있는 문자열을 정수로 변환하면를 사용하여 수행 할 수 있습니다 s.
Jakube

9

CJam, 39 36 35 34 바이트

qN/)i\[{zW%_}4*]ff{_,@e<ew:i}e_:e>

@Dennis가 깨어나 기 전에 빨리 : P

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

설명

기본 알고리즘은 그리드의 네 회전을 모두 수행하고 각 행을 길이의 청크로 분할합니다 N(또는 행 길이 중 작은 쪽). 그런 다음 청크를 정수로 변환하고 가장 큰 값을 가져옵니다.

qN/             Split input by newlines, giving an array of lines
)i\             Drop N from the array and put at bottom
[        ]      Wrap in array...
 {    }4*         Perform 4 times...
  zW%_              Rotate grid anticlockwise and push a copy
                Note that this gives an array of 5 grids [CCW1 CCW2 CCW3 CCW4 CCW4]
ff{         }   For each grid row, mapping with N as an extra parameter...
   _,             Push length of row
     @e<          Take min with N
        ew        Split into chunks
          :i      Convert to ints
e_              Flatten that array
:e>             Take cumulative max

호기심으로, few특별한 일이 있습니까, 아니면 별도의 세 가지 명령입니까?
ETHproductions

3
@ETHproductions 실제로 연산자는 "또는 추가 매개 변수가있는 맵"을 ew사용하여 적용한 것 f입니다. 예를 들어 ["abcd" "efgh"] 2 few결과는 [["ab" "bc" "cd"] ["ef" "fg" "gh"]]입니다.
Sp3000

그래도 흥미로운 우연의 일치입니다.
ETHproductions

문제는 @Dennis가 깨어 나면 다른 사람들은 모두 잃어 버린다는 것입니다. ;)
kirbyfan64sos

-2

익살 연극

아직 최종 답변은 아니지만 다음과 같이 작동합니다.

blsq ) "7423\n1531\n6810"ln)XXJ)\[jtp)\[_+J)<-_+{3.+ti}m[>]
854
blsq ) "7423\n1531\n6810"ln)XXJ)\[jtp)\[_+J)<-_+{4.+ti}m[>]
7423

N과 그리드는 어떻게 정확하게 제공됩니까?


일반적으로 작동 할 때까지 답변을 게시하기 위해 기다려야합니다. OP에 대한 모든 질문은 게시물에 대한 의견으로 제공되어야합니다.
Alex A.

코드는 실제로 작동합니다.
mroman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.