정수 n을 n 번 포함하는 목록으로 바꿉니다.


15

n입력 으로 정수가 주어지면 n반복 n횟수가 포함 된 목록을 반환합니다 . 예를 들어, 프로그램은이를 가져 5와서로 바꿉니다 [5,5,5,5,5]. 요소는 문자열이 아닌 정수 여야합니다. 작업을 수행하는 내장 기능은 허용되지 않습니다.

이것은 이므로 표준 규칙이 적용됩니다.


43
@BrunoE 그래도 왜 그런지 대답하지 않습니다 . 빌트인을 금지 할 실제적인 이유가 있습니까? xnor 인용 : 일반적으로, 도전이 너무 단순해서 흥미로울 수 없다면, 물건을 금지
Lynn

13
@BrunoE 감정에 동의하는 동안 ppcg에서는 객관성을 선호합니다. 무언가가 유효하거나 유효하지 않은 경우, 의견이 방정식에 포함되어서는 안됩니다.
Skidsdev

5
@BrunoE 스펙 은 틀림 없이 입력이 유효한지 여부를 결정할 수 있도록 해야합니다 . 기존 답변에 대한 의견을 공유하고 사양을보다 객관적으로 만드십시오 built-in.
Mr. Xcoder

6
나는 여전히이 작업에 "내장 된"것으로 계산되는 것을 혼동하고 있습니다. 파이썬의 *연산자는 괜찮습니까? 좋지 않은 내장의 예는 무엇입니까?
Steve Bennett

8
나는 아무도 이것을 언급하지 않은 것에 대해 놀랐지 만, 우리는 당신이 그것들을 게시하기 전에 그것들을 게시하여 피드백을 얻을 수있는 도전에 대한 샌드 박스 를 가지고 있습니다. 이렇게하면 다른 사람들이 이미 답변을 제출하는 동안 챌린지 규칙을 논의하지 못하게 될 수 있습니다.
JAD

답변:


32

젤리 , 1 바이트

x

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

참고이되어 있지 은 "반복 n n내장 배"- 그 기능은보다 더 일반적이다. 예를 들어 4,5,6x1,2,3같습니다 [4, 5, 5, 6, 6, 6]. 하나의 인수 감안할 때, 젤리는 왼쪽과 제공된 링크의 오른쪽 인자 모두로 사용이 발생하지만,이 기능이없는 고유x.

이것이 계산되지 않으면 다양한 2 바이트 대안이 있습니다.

x` ṁ` Ra Rị R» a€ oR oḶ oṬ oẊ Ḷị Ḷ» Ṭị Ṭ» Ẋị Ẋ» ị€ ṛ€ ȧ€ »€

기타


10
그래 모든 코드 골프 답변은 작업을 수행하는 기본 제공 모음입니다. x"모든 작업"을 수행 한 경우이 답변을 차단할 수 있지만 가장 확실하지는 않습니다. 링크 구문 분석 및 배열 강제 논리의 암시 적 "0 바이트"가 이것을 repeat([n], n)다른 것으로 바꾸는 것입니다. 하다.
Lynn

8
@ Adám 이것은 2 개의 인수를받는 "xy 번의 각 요소 반복"기능입니다. 이 작업을 수행하는 것은 Jelly가 함수 자체와는 아무런 관련이없는 암묵적인 인수를 구문 분석하는 방법입니다.
Outgolfer Erik

6
이 답변이 유효하지 않으면 질문의 제약 조건이 "No builtins"이 아니라 "No 1 byte answers"입니다. 이는 코드 골프에서 비생산적인 것처럼 보이는 매우 임의적 인 제한입니다.
카밀 드라 카리

8
생각이 대한 인수하지되는 내장 같은 일을 할 젤리에 두 개의 다른 1 개 바이트 답이 있다는 것입니다 따라서이 대답은 세 가지 중 하나가 될 수는. "반복 n n시간"에 대해 3 개의 내장 기능 (하나는 희망 함) 이 없으므로 모두 "내장"기능이 될 수는 없습니다.
nmjcman101

6
이 전체 주석 스레드는 내장과 같은 주관적인 것을 금지하지 않는 좋은 주장으로 보입니다.
trichoplax


19

인화점 스크립팅 언어,  50  46 바이트

f={a=[];t=_this;while{count a<t}do{a=a+[t]};a}

전화 :

hint format["%1", 5 call f]

산출:


당신은 포스트 감소를해야합니까 i--, 그리고 +=이에?
TheLethalCoder

3
왜이 스크린 샷이 항상 불모의 사막에 있습니까? 당신은 당신의 스크린 샷을 위해 멋진지도를 사용해야합니다 : P.
매직 문어 Urn

2
@MagicOctopusUrn 더 나은가요?
Steadybox

1
@Steadybox ahaha! 에픽 : P. 그 마을은 왼쪽에서 죽었습니까? 그것은 당신이 좀 시작하는 교회처럼 보입니다.
매직 문어 Urn

1
스크린 샷은 작은 이미지로 잘려서 게시해야한다고 생각합니다. 지도를 볼 필요가 없으며 실제 출력에서 ​​산만 해집니다.
mbomb007

12

APL (Dyalog) , 2 바이트

5 개의 짧은 솔루션. 마지막 두 가지는 Zacharý의 의례입니다 .


⍴⍨

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

 주기적 R eshape

 본인


/⍨

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

/ 뒤로 젖히다

 본인


\⍨

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

\ 넓히다

 본인


⌿⍨

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

 첫 번째 축만 따라 복제

 본인


⍀⍨

 첫 번째 축만 따라 확장

 본인

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


@Uriel 하나 더…
Adám

1
모두 ⌿⍨⍀⍨작동합니다.
Zacharý

2
'자기'가 얼굴처럼 보이는 것이 의도적인가?
geokavel

1
@geokavel 나는 그렇게 생각하지 않지만이 게시물의 유형이 지정된 것으로도 알았습니다. 꽤 기억 나게합니까? 실제로 selfie 는 준 공식 이름 중 하나이므로 Dyalog APL의 RIDE 인터페이스에서 ``selfie`` 를 입력하여 삽입 할 수 있습니다 .
Adám

1
@sethrin TIO는 문자 (및 해당되는 경우 UTF-8 바이트)를 계산하지만 1 바이트 문자 세트 (SBCS)에서 누락 된 문자를 사용하지 않는 것은 사용자의 몫입니다. APL에 대해서는 여기를 참조하십시오.
Adám



9

옥타브, 12 바이트

@(n)~(1:n)+n

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


내가 이해하지 못하는 코드의 유일한 부분이기 때문에 옥타브에서 ~는 무엇입니까?.
Michthan

1
@Michthan 답변이 늦어 죄송합니다. 1 : n을 n 크기 의 s 배열로 변환 ~하는 not연산자입니다 0. !대신 사용할 수 있습니다 .
rahnema1

9

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

n=>Array(n).fill(n)

시도 해봐

o.innerText=(f=
n=>Array(n).fill(n)
)(i.value=8);oninput=_=>o.innerText=f(+i.value)
<input id=i type=number><pre id=o>


3
...다음이 없는 배열 ?
Neil

1
@ Neil : 입력하는 동안에도 잘못 느꼈습니다! : D
Shaggy


7

하스켈 , 13 바이트

f n=n<$[1..n]

온라인으로 사용해보십시오! 사용법 : f 5수익률 [5,5,5,5,5]. 를 들어 n=5, [1..n]목록을 산출한다 [1,2,3,4,5]. n<$이 목록의 각 요소를로 바꿉니다 n.


3
내 조금 더 길지만 어쨌든 그것을 좋아한다 :join replicate
amalloy

@amalloy 이것은 실제로 하스켈이 깨끗한 방법 일 것입니다. 그러나 joinPrelude의 일부가 아니므로 길이가 길어 import Control.Monad골프에 유용하지 않습니다.
Laikoni



5

Dodos , 76 바이트

	f f r 2
2
	
	
r
	r d
	f s t f
d
	dip f s t
	f
t
	dot f
	dot
s
	s dip
f
	dab

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

설명:

fdab(꼬리) 의 별칭입니다 .

sx ≤ y 일 때 위키에서 설명 된 것처럼 (x, y) → (0, y-x) 입니다.

t(a, b, c…)(b + c +…, a + b + c +…)로 매핑 합니다.

f s t(a, b, c…)a에 매핑 합니다 . 이것이 "헤드"기능입니다.

d(a, b, c…) → (| a-1 |, b, c…) 의 머리 만 담그십시오.

r주요 반복 논리입니다. (a, b)(* r (| a-1 |, b), b)에 매핑 합니다.

예를 들어, r (4, 7) 은 다음과 같이 평가됩니다.

  r(4, 7)
= r(3, 7), 7
= r(2, 7), 7, 7
= r(1, 7), 7, 7, 7
= r(0, 7), 7, 7, 7, 7
  → This would call r(1, 7), but (1, 7) ≥ (0, 7), so surrender!
= 0, 7, 7, 7, 7, 7.

마지막으로, 우리 2n → (n, n) 을 매핑 하는 정의 main하고 r (n, n)을f f r 2 계산 하고 처음 두 요소를 잘라내 는 것으로 정의 합니다.



4

TeX, 81 바이트

\newcommand{\f}[1]{#1\count0=2\loop,#1\advance\count0 by1\ifnum\count0<#1\repeat}

용법

\documentclass[12pt,a4paper]{article}
\begin{document}
\newcommand{\f}[1]{#1\count0=2\loop,#1\advance\count0 by1\ifnum\count0<#1\repeat}

\f{5}

\f{10}
\end{document}

enter image description here


실제로 LaTeX입니다. Tex에서는 훨씬 짧습니다.
골드 맨


4

하스켈 (14 바이트)

replicate>>=id

@nimi 덕분에 더 이상 수입이 필요하지 않습니다. 예이!

정수 인수를 취하는 함수입니다. 예를 들어 다음은 다음을 반환합니다 [5,5,5,5,5].

(replicate>>=id) 5

1
왜 안돼 id=<<replicate? 또한 14 바이트이지만 가져 오기가 필요하지 않습니다.
nimi

@nimi 아주 좋은 지적입니다! 그 가능성을 간과했습니다. (실제로 화살표 모나드에 대해 더 자세히
알아야합니다

4

자바 (OpenJDK 8) , 50 48 바이트

n->java.util.Arrays.stream(new int[n]).map(i->n)

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

@Jakob 덕분에 -2 바이트

@ OlivierGrégoire의 게시물에 대한 의견에서 영감을 얻어 조금 더 최적화했습니다. 정수 입력을 받아서 n요소 의 IntStream을 만든 다음 각 요소를 매핑 n하고 반환합니다.


로 시작하여 2 바이트를 절약 할 수 있습니다 java.util.Arrays.stream(new int[n]).
Jakob

4

펄 5 , 18 14 바이트

@DomHastings 덕분에 -4 바이트

sub{(@_)x"@_"}

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

x전체 작업을 수행하는 내장은? 일종의? 그렇지 않습니까? 규칙이 명확하지 않습니까?

편집 : 예, 아마 괜찮을 것입니다.


거의 동일했지만 첫 번째 $_[0]@_! 또한 두 번째로 "@_"생각할 수 있습니다 ...
Dom Hastings

나는 그것이 하나의 입력 대신 두 개의 입력이 필요하다는 사실을 해결해야하기 때문에 내장 된 것으로 간주되지 않는다고 말하고 싶습니다.
브래드 길버트 b2gills

왜 안 $_=$_ x$_perl -pe?
Thor

@Thor는 x왼쪽 피연산자 괄호에 (또는가 아닌 문자열 반복하지리스트 반복 수행 qw오퍼레이터)가 상기 x리스트 문맥에서 평가 하였다. 물론 $_목록이 아닌 스칼라입니다.
aschepler

1
@ 그래서 나는 "목록을 반환"을 만족한다고 생각하지 않습니다.
aschepler

3

J, 2 바이트

$~

APL 답변과 동일 : 입력을 반사적으로 형성합니다. 다시 말해:

$~ y
y $ y
NB. y copies of y


3

C (gcc) , 55 바이트

int*f(k){int*r=malloc(k*4),a=k;for(;a-->0;)r[a]=k;k=r;}

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

k정수 목록을 반환합니다 .


1
예, "긴 화살표 연산자". 또한 gcc가 eax로컬에 레지스터 를 사용할 것이라고 생각하지 않았습니다 . 그림을 이동.
aschepler

2
내가 간과하지 않는 한주 기 동안 0에서 비교를 제거하여 2 바이트를 절약 할 수 있습니다.
Jasmes

*f(k){int r[k],대신 추천int*f(k){int*r=malloc(k*4),
ceilingcat

3

Röda , 10 바이트

{[[_]*_1]}

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

설명:

{[[_]*_1]}
{        } /* Anonymous function   */
   _       /* The input (_1)       */
  [ ]      /* As a list            */
     *_1   /* Repeated _1 times    */
 [      ]  /* Pushed to the stream */

1
첫 번째 입력에서 1을 해제하고 두 번째 입력에서는 왜 1을 해제 할 수 있습니까?
코너 오브라이언

1
@ ConorO'Brien 숫자가없는 각 밑줄에는 이전보다 하나 큰 숫자가 있습니다 : [_]*_= [_1]*_2. 첫 번째 밑줄이 첫 번째 밑줄이므로 자동으로 숫자가 1입니다.
fergusq


3

brainfuck , 16 바이트

[->+>+<<]>[->.<]

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

고장 :

[->+>+<<]          Duplicate 'n' into the next 2 cells to the right
         >         Move to the first duplicate
          [->.<]   Print 'n', 'n' times

당신이 알고 있듯이 brainfuck은 입력 및 출력 값을 ASCII 문자로 사용합니다. 따라서 a !는 값 33으로 표시됩니다.


귀하의 프로그램은 입력을받지 못합니다. 테이프에 남은 가치에 대해 이야기하지 않는 한
Conor O'Brien

@ ConorO'Brien 사다리. 프로그램 이상의 기능으로 생각하십시오.
Graviton

3

Coreutils, sed, 14 바이트

yes $1|sed $1q

zsh 함수로서 20 19 바이트 :

f(){yes $1|sed $1q}

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


나는이 답변이 입력을받지 않기 때문에 유효하다고 생각하지 않습니다.
DJMcMayhem 13:21의

@DJMcMayhem : 함수에서 사용
Thor

왜 프로그램으로 만들지 yes $1|sed $1q않겠습니까?
디지털 외상

좋은 점 @DigitalTrauma, 업데이트
Thor

규칙은 문자열 요소가 아니라 정수 요소 여야한다고 말합니다. 이를 만족시키기 위해 bash / zsh 응답은 declare -i정수 변수 를 사용해야 합니다. 그러나 또한 배열이어야합니다. bash가 정수 배열을 지원하는지 확실하지 않습니다 ( eval declare -ia "$1"첫 번째 함수 arg를 배열 반환 값의 이름으로 사용하는 것과 같습니다). 이것은 질문의 정신을 따르기 때문에 이것을 찬성했습니다. 정수 목록 / 배열이없는 언어를 배제하기위한 질문이 의심 스럽습니다.
Peter Cordes


2

자바 (오픈 JDK 8) , 58 56 바이트

n->{int a[]=new int[n],i=n;for(;i-->0;)a[i]=n;return a;}

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

@KevinCruijssen 덕분에 -2 바이트


1
두 짧은 바이트 :n->{int a[]=new int[n],i=n;for(;i-->0;)a[i]=n;return a;}
케빈 Cruijssen에게

트윗 담아 가기
Olivier Grégoire

우리 모두에게 일어납니다. ;) 당신이 내 답변 기록을 보면 아마도 "내가 바보 같은 실수로 인해 / 절약 한 바이트 덕분에 바이트를 줄에 뭔가를 추가 할 수도 있습니다.":)
Kevin Cruijssen

내가 좋아하는 대답에 대해 생각 IntStream.generate(() -> n).limit(n):)하지만 타이핑까지 가치가 없다라고 판단하고 대신이 upvoted
JollyJoker

1
@JollyJoker 당신은 그것을 할 수 있었다 ! 실제로 2 바이트 짧아서 쉽게 답을 이길 것입니다 ;-)
Olivier Grégoire


2

스위프트 3 , 29 바이트

{n in(0..<n).map{_ in n}}

여기 사용해보십시오!

스위프트 3 , 30 바이트

{Array(repeating:$0,count:$0)}

여기 사용해보십시오!


같은 변수를 두 번 반복하여 입력을 얻을 수 있는지 궁금합니다. 그런 다음 10 바이트 솔루션을 가질 수 있습니다 Array.init. 타입 별명을 가진 변수에 그것을 할당하고 붐 :let f: (Int, Int) -> [Int] = Array.init; print(f(5, 5))
Alexander-Reinstate Monica

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