건초 더미에서 바늘 찾기


38

인쇄 가능한 모든 ASCII 문자로 구성된 최소 2x2 크기의 직사각형 건초 더미가 주어지면 바늘의 위치 (왼쪽부터 계산)가 다른 문자가됩니다.

예를 들어, 다음 건초 더미가 입력 된 경우 :

#####
###N#
#####
#####

출력은 3,10 인덱스 (이 챌린지에서 사용할 것) 또는 4,21 인덱스 일 때 여야합니다 .

건초 더미는 인쇄 가능한 ASCII 문자로 구성 될 수 있습니다.

^^^
^^^
^N^
^^^
^^^
^^^

산출: 1,2

바늘은 다른 인쇄 가능한 ASCII 문자입니다.

jjjjjj
j@jjjj
jjjjjj

산출 1,1

모서리에 바늘을 넣을 수도 있습니다.

Z8
88

산출 0,0

88
8Z

산출 1,1

또는 바늘을 가장자리에 두십시오.

>>>>>>>>>>
>>>>>>>>>:
>>>>>>>>>>

산출 9,1

규칙 및 설명

  • 입력 및 출력은 편리한 방법 으로 제공 할 수 있습니다 . 즉, 문자 목록, 단일 문자열 등으로 입력 할 수 있습니다.
  • 결과를 STDOUT에 인쇄하거나 함수 결과로 리턴 할 수 있습니다. 제출물에 출력 순서가 무엇인지 (즉, 챌린지에 사용 된대로 수평, 수직 또는 그 반대) 설명하십시오.
  • 전체 프로그램 또는 기능이 허용됩니다.
  • 사용할 문자를 선택할 수 없습니다 . 그게 도전입니다.
  • 건초 더미의 크기는 2x2 이상이어야하므로 바늘과 건초가 명확합니다.
  • 입력에는 바늘이 하나만 있으며 크기는 한 개뿐입니다.
  • 표준 허점 은 금지되어 있습니다.
  • 이것은 이므로 모든 일반적인 골프 규칙이 적용되며 가장 짧은 코드 (바이트)가 이깁니다.

권장 테스트 사례 : 88\n8Z(물론 두 문자 포함).
Kevin Cruijssen

입력을 다차원 배열로 사용할 수 있습니까? 즉 [[ '#', '#', '#', '#', '#'], [ '#', '#', '#', 'N', '#'], [ '#' , '#', '#', '#', '#'], [ '#', '#', '#', '#', '#']];
640KB

2
@gwaugh 문자 목록의 목록처럼? 예, 괜찮습니다 (명확하게 OK라고 부름).
AdmBorkBork

3
줄 바꿈없이 건초 더미의 너비 (또는 높이)없이 문자열 쌍으로 입력을 취할 수 있습니까? 즉("########N###########", 5)
누군가

3
@someone 예, 실제 정족수는 없지만 허용되어야한다고 생각합니다.
AdmBorkBork

답변:



9

펄 6 ,41 38 37 바이트

@nwellnhof 덕분에 3 바이트가 절약되었습니다.

Jo King 덕분에 1 바이트가 절약되었습니다.

{map {[+] ^∞Z*!<<.&[Z~~]},$_,.&[Z]}

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

설명

입력을 문자 목록의 목록으로 취하고 바늘의 0부터 시작하는 X 및 Y 좌표를 포함하는 길이 2의 목록을 리턴합니다.

{[+] ^∞ Z* !<<.&[Z~~]}입력과 조옮김에 블록 을 적용하여 작동합니다 . .&[Z~~]인수의 모든 열을 통과하고 모든 True요소가 동일한 경우 False반환합니다. 그런 다음 모든 값을 무효화합니다 (따라서 열당 하나의 부울이있는 목록이 있습니다. 여기서 부울은 "그 열의 바늘입니까?"라는 질문에 대답합니다). 요소별로 시퀀스 0,1,2, .. ( True = 1False = 0)와 목록을 합하면 전체 블록의 결과는 바늘이 발견 된 열의 0부터 시작하는 숫자입니다.

Nwellnhof의 더 나은 접근 방식, Perl 6 , 34 바이트

{map *.first(:k,*.Set>1),.&[Z],$_}

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

설명

일반적으로 동일한 접근 방식으로 더 효과적입니다. 여전히 배열의 블록과 조옮김을 사용하지만 이제 블록은 모든 을 변환하고 Sets요소 수를 확인합니다. first함수는 (인덱스에 의한 제공 :k1 개 이상의 원소를 함유 첫번째 행 참조). 그 때문에,의 순서 $_.&[Z]필요를 교환한다.


좋은 접근 방식! 34 바이트first(:k), Set.&[Z].
nwellnhof

@nwellnhof, 잘 했어요. 당신은 기본적으로 내가 찾고 싶은 것을 찾았지만 그렇게하지 못했습니다. (또한 여러분이 글을 쓸 수있을 줄 몰랐습니다 .&[Z].)
Ramillies

일반적으로 .&[op]동일 [op] $_하지는 않지만 Z어떤 이유로 작동합니다 .
nwellnhof

@ 조킹 감사합니다!
Ramillies

9

파이썬 2 , 57 바이트

lambda m:[map(len,map(set,a)).index(2)for a in zip(*m),m]

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


Python 3에 대한 포트는 62 바이트 수 있습니다 .

lambda m:[[len(set(v))for v in a].index(2)for a in(zip(*m),m)]

리스트 이해 [len(set(v))for v in a]는 다음과 같은리스트로 캐스트되어야하기 때문에 이중 맵보다 2 바이트 더 짧습니다.list(map(len,map(set,a)))

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


6

Brachylog , 20 바이트

c≡ᵍ∋Ȯ&;I∋₎;J∋₎gȮ∧I;J

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

출력 [I,J](여기서 I행 인덱스 및 J열 인덱스는 모두 0 인덱싱 됨)

어리석게 길지만 Brachylog에서 색인을 얻는 것은 일반적으로 매우 장황합니다.

설명

c                       Concatenate the Input into a single string
 ≡ᵍ                     Group identical characters together
   ∋Ȯ                   Ȯ is a list of One element, which is the needle character
     &;I∋₎              Take the Ith row of the Input
          ;J∋₎          Take the Jth character of the Ith row
              gȮ        That character, when wrapped in a list, is Ȯ
                ∧I;J    The output is the list [I,J]

6

PHP ,99 85 바이트

줄 바꿈없이 문자열을 사용하고 너비 (또는 높이 ('########N###########', 5)를 입력으로 사용하십시오.

  • chr () 호출을 제거하여 -5 바이트, @Titus에 props
  • 입력을 두 개의 함수 인수로 사용하여 -9 바이트, @Titus에도 적용
function($a,$l){return[($p=strpos($a,array_flip(count_chars($a,1))[1]))%$l,$p/$l|0];}

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

언 골프 드 :

function need_hay( $a, $l ) {

    // identify the "needle" by counting the chars and 
    // looking for the char with exactly 1 occurrence
    // note: this is 1 byte shorter than using array_search()
    $n = array_flip( count_chars( $a, 1 ) )[1];

    // find the location in the input string
    $p = strpos( $a, $n );

    // row is location divided by row length, rounded down
    $r = floor( $p / $l );

    // column is remainder of location divided by row length
    $c = $p % $l;

    return array( $c, $r );

}

산출:

#####
###N#
#####
#####
[3,1]

^^^
^^^
^N^
^^^
^^^
^^^
[1,2]

jjjjjj
j@jjjj
jjjjjj
[1,1]

1
1) 필요 없음 chr: strpos의 두 번째 매개 변수가 정수이면 ASCII 코드로 해석됩니다. -> -5 바이트 2) 2 개의 기능 매개 변수 $s,$w는 9 바이트를 더 절약 할 수 있습니다.
Titus

@Titus, 화려한 chr () 제거. 고마워! 펑크 매개 변수도 나에게 발생했습니다. 입력 요구 사항의 어 울프를 실행하고 싶지 않았습니다. 나는 w / OP를 명확히 할 것이다.
640KB

5

05AB1E , 9 6 바이트

3 바이트 스위칭 입력 형식을 저장했습니다.

입력은 문자열과 행 길이로 간주됩니다.
출력은 0부터 시작하는 양식 목록입니다.[y, x]

D.mks‰

온라인으로 사용해보십시오! 또는 테스트 스위트

설명

D           # duplicate the input string
 .m         # get the least frequent character
   k        # get its index in the string
    s       # swap the row length to the top of the stack
     ‰      # divmod the index of the least frequent char with the row length

댕, 당신이 날 이겼어 답을 찾고있었습니다. 방금 13 바이 터를 마쳤습니다. 그러나 당신의 방법이 더 좋으므로 +1입니다. :) 완전히 잊어 버렸습니다 .m..
Kevin Cruijssen

@ KevinCruijssen : 예. 나는 내가 .m전에 사용한 적이 없다고 생각 하지만, 나는 어느 시점에서 그것을 보았을 것이라고 확신했다 :)
Emigna

5

Python 3 + NumPy , 75 66 바이트

@ASCII 전용으로 -9 바이트

lambda x:where(x.view('i')-median(x.view('i')))
from numpy import*

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

이것은 입력이 NumPy 배열이라고 가정합니다. 출력은 0으로 색인화되고, 먼저 수직으로, 수평으로됩니다.

그것의 입력 변환 charint다음의 건초 문자 될 어레이의 중앙값을 계산한다. 우리는 배열에서 이것을 빼서 바늘을 0이 아닌 유일한 요소로 만듭니다. 마지막으로으로 해당 요소의 인덱스를 반환하십시오 numpy.where().


1
입력이 ASCII (즉, 바이트에 적합)임을 알고 있기 때문에 왜 uint81 바이트 이하로 사용 하지 않습니까?
Draconis

1
NumPy와는 정상 파이썬 배포판에 포함되지 않기 때문에 언어는 "파이썬 3 + NumPy와"여기에 있습니다
ASCII 전용

@Draconis는 실제로 내 계획이지만 올바른 uint8ASCII 코드 사이에 0을 도입했습니다 . 필자는 Python3이 문자열의 표준 입력 형식으로 유니 코드를 사용하기 때문이라고 가정합니다.
hbaderts


1
괜찮습니다. 결국 솔루션을 기반으로 할뿐만 아니라 어쨌든 일반적으로 numpy를 사용하지 않습니다. 또한,이 솔루션은 모든 솔루션은 공개되어 주어진 어쨌든 매우 유사 할 수 있음을 좀 불가피 하고 이것은 비교적 쉽게 도전
ASCII 전용


4

젤리 , 4 바이트

어쩌면 이것은 Xcoder에 대한 주석 일 수도 있었을 것입니다.

ŒĠEƇ

문자 매트릭스를 허용하는 모나드 링크로, 왼쪽에서 1- 인덱싱 된 (행, 열) 좌표 인 한 항목의 목록을 생성합니다.
(... 파싱하면 문자 목록-파이썬 형식의 문자열 목록-이 단일 좌표가 인쇄되도록 형식이 지정된 인수가 제공되는 전체 프로그램입니다.)

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

어떻게?

ŒĠEƇ - Link: matrix, M
ŒĠ   - multi-dimensional indices grouped by Value
     -  ...due to the 2*2 minimum size and one needle this will be a list of two lists one
     -     of which will have length one (the needle coordinates as a pair) and the other
     -     containing all other coordinates as pairs
   Ƈ - filter keeping those for which this is truthy:
  E  -   all equal?
     -   ... 1 for the list of length 1, 0 for the list of at least 3 non-equal coordinates

1
글쎄 ... 이것은 영리하기 때문에 경계선처럼 보입니다 .
Erik

4

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

(s)(w)sw[x,y]

s=>w=>[(i=s.indexOf(/(.)\1+(.)/.exec(s+s)[2]))%w,i/w|0]

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


자바 스크립트 (ES6),  65  64 바이트

@Neil 덕분에 1 바이트 절약

[x,y]

m=>m.some((r,y)=>r.some((c,x)=>!m[p=[x,y],~y&1].includes(c)))&&p

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

어떻게?

c(x,y)r[Y]Yy2×2Y=0yY=1y


1
~y&1바이트를 저장합니다 y&1^1.

4

자바 8, 132 111 바이트

m->{int c=m[0][0],i=0,j;for(c=m[1][0]!=c?m[1][1]:c;;i++)for(j=m[i].length;j-->0;)if(m[i][j]!=c)return i+","+j;}

@dana 덕분에 -8 바이트 (및 -13 더 암시 적으로) .

문자 매트릭스로 입력하십시오.

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

설명:

m->{                    // Method with char-matrix parameter and String return-type
  int c=m[0][0],        //  Character to check, starting at the one at position 0,0
      i=0,j;            //  Index integers
  for(c=m[1][0]!=c?     //  If the second character does not equal the first:
         m[1][1]        //   Use the character at position 1,1 instead
        :c;             //  Else: keep the character the same
      ;i++)             //  Loop `i` from 0 indefinitely upwards:
    for(j=m[i].length;j-->0;)
                        //   Inner loop `j` in the range (amount_of_columns, 0]:
      if(m[i][j]!=c)    //    If the `i,j`'th character doesn't equal our character to check:
        return i+","+j;}//     Return `i,j` as result

1
124- 최종 return진술은 절대로 맞지 않아야한다 외부 루프를 계속 유지하는 더 좋은 방법이 있습니까?
dana

@dana 감사합니다! " 외부 루프를 계속 유지하는 더 좋은 방법이 있을까요? " 그것을 제거하면 무한 루프가됩니다. 그런 다음에 return"";는 연결할 수 없으며 제거 할 수도 있습니다. : D 그래서 -21 바이트 덕분입니다.
Kevin Cruijssen

흥미 롭습니다 ... 외부 루프 조건을 제거하려고 시도했지만 unreachable code오류가 발생했습니다. 결승전을 제거하는 return것이 해결책 이라는 것을 몰랐습니다 .
dana

내부 루프에서-> 연산자는 정확히 무엇을합니까? 해당 구문에 대한 Java 문서를 찾으려고했지만 찾을 수 없음
KBusc

1
@KBusc 두 개의 연산자입니다 : i-->. :) 자세한 내용은 SO 답변을 참조하십시오. 따라서는 0보다 큰지 i > 0검사 하여 먼저 실행 i됩니다. 그리고 루프 본문에 들어가기 전에 i로 1을 줄 i--입니다.
Kevin Cruijssen

3

MATL , 12 8 바이트

tX:XM-&f

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

mode다수 탐지기로 기능 사용 1부터 시작하는 인덱스를 반환합니다.

 t           % duplicate the input
  X:         % turn the copy into a linear array
    XM       % find the arithmetic mode of that (the 'haystack' character)
      -      % Subtract that from the original input
       &f    % find the position of the non-zero value in that result

@LuisMendo 덕분에 -4 자


1
@LuisMendo 감사합니다. findMATLAB에서도 2 출력 버전에 대해 알지 못했다고 생각 합니다. (안녕하세요, btw!)
Sundar-Reinstate Monica

3

볼프람 언어 37 58 바이트

이전 항목은 "홀수 문자 출력"이 행렬의 왼쪽 상단에있는 경우를 올바르게 처리하지 못했습니다. 그렇습니다.

#~Position~Keys[TakeSmallest[Counts@Flatten@#,1]][[1]]&

Counts@Flatten@#배열에있는 각 문자 수를 나열합니다 #.

TakeSmallest[...,1] 다음과 같은 연관 규칙의 형태로 최소 빈도 수를 리턴합니다. <| "Z"->1|>

Keys...[[1]]"키"를 연관에서 유일한 항목, 가장 적게 사용 된 문자의 항목으로 리턴합니다. (이 경우 "Z")

#~Position~...원래 행렬에서 키의 위치를 ​​반환합니다 #.


3

펄 5 -p00, 52 45 바이트

/^(.)(\1*
)*(\1*)|^/;$_=$&=~y/
//.$".length$3

45 바이트

52 바이트

어떻게

  • -p00: -n단락 모드 와 마찬가지로 인쇄
  • /^(.)(\1* )*(\1*)|^/ : 어느 쪽이든 일치
    • 시작부터 $1: 첫 문자, $2: 반복 (사용되지 않음), $3: 행에서 "바늘"앞의 문자, $&전체 일치
    • 또는 널 문자열 (위치 0)이 캡처되지 않습니다.
  • $_= : 기본 입력 / 인수 변수를 지정합니다
  • 그래서 줄 $&=~y/ //바꿈의 수$&
  • .$".: $"(기본적으로 공백 문자)로 연결하고 연결
  • length$3 : 길이 $3

3

R 42 바이트

function(m)which(ave(m,m,FUN=length)==1,T)

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

입력 : 건초 더미 매트릭스m

출력 : (row,col) 벡터-시작 색인1


1
PPCG에 오신 것을 환영합니다! f=바이트 수에서 생략 할 수는 있지만 42 바이트는 생략 할 수 있기 때문에 이것이 42 바이트라고 생각 합니다 function(m)=.
BLT

@ BLT 나는 그것에 대해 확신하지 못했지만 헤드 업 주셔서 감사합니다 :)
niko




2

PowerShell , 107 98 82 77 바이트

$l=@{}
$args|%{if($_-10){$l.$_+=$x++,+$y}else{$x=0;++$y}}
$l|% v*|? c*t -eq 2

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

LF와 함께 튄 문자열을 가져옵니다. 인덱스가없는 위치 x, y를 반환합니다. 풀림 :

$locations=@{}                      # make a hashtable. key=char, value=location array
$args|%{
    if($_-10){                      # if current char is not LF
        $locations.$_+=$x++,+$y     # add $x,$y to hashtable value and move $x to next pos
    }else{
        $x=0;++$y                   # move $x,$y to next line
    }
}
$locations|% Values|? Count -eq 2   # find and output location array with 2 elements (x,y)



1

레티 나 0.8.2 , 41 바이트

s`(?=(.)+\1)(.*?¶)*(.*)(?!\1|¶).+
$.3,$#2

온라인으로 사용해보십시오! 인덱스가 0입니다. 설명:

s`

허용 .줄 바꿈에 맞게. 이것은 3 바이트 (3 바이트는 ?이전 )이지만 6 바이트를 절약합니다.

(?=(.)+\1)

두 개의 동일한 문자를 찾으십시오. \1그러면 건초가됩니다.

(.*?¶)*

바늘 앞에 줄 바꿈 수를 세십시오.

(.*)

바늘 왼쪽의 건초를 잡습니다.

(?!\1|¶)

바늘이 건초가 아니거나 개행이 아닌지 확인하십시오.

.+

결과가 그것을 대체하도록 나머지 건초를 일치시킵니다.

$.3,$#2

왼쪽 건초의 너비와 줄 바꿈 수를 출력하십시오.


1

C # (Visual C # 대화식 컴파일러) , 82 바이트

x=>w=>{int y=x.IndexOf(x.GroupBy(c=>c).Last(g=>g.Count()<2).Key);return(y%w,y/w);}

6 바이트를 깎아 준 dana에게 감사드립니다!

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

이전 솔루션, 106 바이트

n=>m=>{var z=n.Distinct();int d=n.IndexOf(n.Count(c=>c==z.First())>1?z.Last():z.First());return(d%m,d/m);}

둘 다 입력을 문자열로, 열의 양을 지정하는 정수로 사용합니다.

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


@dana Enumerable.Last()는 대의원 을 받아 들인 것을 결코 알지 못했습니다 . 감사
무지의 구현

1

자바 8, 104 바이트

(x,w)->{int i=0,p=x.length;for(;i<p;i++)if(x[i]!=x[(i+1)%p]&&x[i]!=x[(i+2)%p])break;return i/w+","+i%w;}

입력은 char 배열이며 행 너비를 나타내는 정수입니다.

출력은 0부터 시작하여 세로, 가로 (예 : 행 번호, 열 번호)입니다.

설명:

(x,w)->{
    int i=0, p=x.length;
    for (;i<p;i++)          //iterate through characters in x
      if (x[i]!=x[(i+1)%p] && x[i]!=x[(i+2)%p])    //compare x[i] with the two subsequent characters in array, wrapping around if necessary
        break;
    return i/w+","+i%w;}  //return row number then column number, zero-based

1

파이썬 3 , 93 89 85 58 바이트

다음과 같이 입력을 다시 작성하십시오 concatenated string, width.

lambda g,w:divmod(g.index({g.count(c):c for c in g}[1]),w)

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


원래 답변 :

def k(g):t=''.join(g);return divmod(t.index({t.count(c):c for c in t}[1]),len(g[0]))

편집 : 세미콜론에 줄 바꿈 / 들여 쓰기를 바꾸어 4 바이트를 절약했습니다. divmod(@JonathanFrech 덕분에)를 사용하여 다른 4 바이트를 저장했습니다 .

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

나는 이것이 훨씬 짧을 수 있다는 것을 알고 있지만, 나는이 dict이해에 대한 접근법을 시도하고 싶었습니다 .


1
를 사용 divmod하면 5 바이트를 절약 할 수 있습니다.
Jonathan Frech

0

MATL , 11 바이트

tX:YmyYk-&f

출력은 행, 열입니다. 1 기반.

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

설명

t    % Implicit input. Duplicate
X:   % Linearize into a column
Ym   % Compute mean (characters are converted to ASCII codes)
y    % Duplicate from below: pushes input again
Yk   % Closest value: gives the input value that is closest to the mean
-    % Subtract, element-wise. Gives non-zero for the value farthest from the mean
&f   % Two-output find: gives row and column indices of nonzeros. Implicit display

0

Pyth, 15 14 12 바이트

.Dxz-zh.-z{z

입력을 행의 길이로 사용하고 행이없는 입력을 [행, 열]로 출력합니다.
여기 사용해보십시오

설명

.Dxz-zh.-z{z
       .-z{z    Subtract one of each character from the input.
      h         Take the first.
    -z          Remove all instances from the input.
  xz            Find the remaining character in the input.
.D          Q   Take the result divmod the (implicit) length of the row.

오래된 접근법

mxJmt{kdeSJ.TB

여기 사용해보십시오

설명

mxJmt{kdeSJ.TB
           .TBQ   Take the (implicit) input and its transpose...
m      d          ... and for each...
   mt{k           ... deduplicate each row...
 xJ     eSJ       ... and find the index of the largest.     

0

, 40 바이트

≔§⎇⌕θ§θ¹ηθ⁰ζSθW⁼№θζLθ«⊞υωSθ»I⌕Eθ⁼ιζ⁰,ILυ

온라인으로 사용해보십시오! 링크는 자세한 버전의 코드입니다. 레티 나가 대답하는 시간만큼 길기 때문에 뭔가 잘못하고있을 것입니다. 설명:

≔§⎇⌕θ§θ¹ηθ⁰ζ

첫 번째 문자열의 두 번째 문자가 첫 번째 문자인지 확인하고, 그렇지 않으면 첫 번째 문자열의 첫 번째 문자를 취하십시오. 그렇지 않으면 두 번째 문자열의 첫 번째 문자를 사용하십시오. 이것은 건초입니다.

SθW⁼№θζLθ«⊞υωSθ»

건초가 길이보다 작은 끈을 찾을 때까지 끈을 계속 읽습니다.

I⌕Eθ⁼ιζ⁰,ILυ

불일치 요소의 위치를 ​​출력 한 다음 이전에 읽은 문자열 수를 출력하십시오.


0

MATLAB, 68 22 바이트

[r,c]=find(v~=v(1));if size(r,1)>1 disp([1,1]);else disp([r,c]);end;

[1,1]이 솔루션 과 같은 경우를 제외하고 여러 바이트를 절약 할 수 있습니다.

업데이트 된 솔루션 :

@(v)find(v-mode(v(:)))

특수한 문제를 해결하고 42 바이트를 절약 해 준 @sundar에게 감사합니다! 또한 제안에 대한 @Luis_Mendo 덕분에 2 바이트를 더 절약 할 수 있습니다!


대신을 [1,1]사용하여 사례 확인을 제거 할 수 있다고 생각합니다 . mode(v(:))v(1)
sundar-복 직원 Monica

코드가 완전한 프로그램 또는 함수가되도록 랩핑해야합니다. 입력이 변수에 있다고 가정 할 수 없습니다 v. 또한, 당신은 아마 교체 할 수 있습니다 ~=에 의해 -, 제거 최종;
루이스 Mendo

0

로다 , 81 바이트

f a{i=indexOf;l=i("
",a)+1;chars a|sort|count|[[_2,_1]]|min|i _[1],a|[_%l,_1//l]}

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

줄 바꿈으로 끝나는 줄을 포함하는 문자열로 입력을받습니다. 0 인덱스 가로 및 세로 인덱스가 포함 된 스트림을 반환합니다.

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