세 정수 모두 구별됩니까?


14

입력으로 3 개의 정수가 제공됩니다. 입력은 서로 다를 수도 있고 다를 수도 있습니다. 세 입력이 모두 다르면 1을 출력하고 입력이 두 번 이상 반복되면 0을 출력해야합니다.

이것은 이므로 가능한 한 코드를 짧게 만드십시오!


1
PPCG에 오신 것을 환영합니다. 좋은 첫 번째 도전. 우리는이 사이트에서 객관적인 승리 기준에 대해 매우 엄격합니다. code-golf 는 여기서 명백한 선택 인 것 같습니다. 그래서 게시물에 추가하겠습니다. 틀린 점 있으면 지적 해주세요.
Adám

1
일부 테스트 사례는 좋을 것입니다.
Adám

19
모든 해답을 내리는 사람은 최소한 이유를 설명해야합니다.
Arnauld

1
@ Adám 더 정확한 제목은 다음과 같습니다. 세 정수 모두 구별됩니까?
Arnauld

5
내 속는-투표는 망치이지만, 의 사용 가능한 복제 " 모든 진수가 고유 있는지 확인합니다 " 약간 다른,하지만 대부분의 대답은 여전히 이식 할 수 있습니다.
Kevin Cruijssen

답변:


10

파이썬 3 , 23 21 20 바이트

lambda*a:len({*a})>2

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


OP는 1 대 0을 요청 했으므로 바이트가 하나 더 필요할 수 있습니다.lambda*a:len({*a})//3
tsh

파이썬 1 == True에서 @tsh , 어딘가에 메타 포스트가 있다고 생각합니다
Stephen

1
@ tsh- 관련 메타 : "숫자처럼 qua 거리면 숫자"-파이썬에서 : False * Trueis 0; False + True이다 1; 기타 ...
Jonathan Allan

관련 메타에서 : "정확한 문자열 출력이 필요한 문제에는 적용되지 않습니다."따라서 실제로 어떤 것이 적용되는지 잘 모르겠습니다.
GB


8

R , 13 바이트

mad()의도하지 않은 목적 으로 @Kirill을 사용하는 다른 솔루션 !

mad(scan())>0

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


1
잘 입력이 때문에 IMO 우리가 벡터 받아 들일 수 입력 수단으로 삼 개 값을 받아들이는 전혀 지정되지 않은
digEmAll

2
거의 골프 언어와 경쟁 R! : D
digEmAll

1
Gauss mad가이 목적을 위해 정확하게 발명했다고 생각 합니다.
ngm

5

R , 24 22 20 바이트

all(table(scan())<2)

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

부울을 반환하지만, 사람들이 이미 파이썬 답변 에 대해 논의했듯이 괜찮습니다.

2 바이트를 절약 한 digEmAll에게 감사합니다.



11 바이트 -진리 숫자로 0보다 큰 숫자를 가질 수있는 경우. 그렇지 않으면 13 바이트 >0TRUE/FALSE출력을 추가하십시오 .
J.Doe

1
와우,이 기능에 대해서도 몰랐어요. 나는 당신이 그것을 별도로 게시하는 것이 좋습니다 (삭제 된 답변을 편집하고 부활 시키십시오). 그러나 나는 당신이 13 바이트를 고수해야한다고 생각합니다.
Kirill L.

5

자바 스크립트, 22 바이트

부울 값을 출력 할 수 있으면 마지막 2 바이트를 제거 할 수 있습니다.

a=>new Set(a).size>2&1

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

동일한 바이트 수의 경우 모든 크기의 배열에서 작동하지만 입력에 a가 포함되지 않고 0출력이 부울 이라고 가정합니다 .

a=>!a[new Set(a).size]

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


입력을 배열로 가져와 부울을 반환한다고 가정합니다.a=>new Set(a).size>2
Arnauld

@ Arnauld, 그래, 나도 그랬지만 사양이 허용하지는 않지만 사양이 변경되면 업데이트됩니다.
Shaggy

아 잠깐만 &122 바이트 만 사용할 수 있습니다 .
Shaggy



3

05AB1E , 2 바이트

ÙQ

온라인으로 시도 하거나 사례를 더 확인 하십시오. .

설명:

Ù     # Uniquify the (implicit) input
 Q    # Check if it's still equal to the (implicit) input

의사 결정 문제에 표준 진실 / 거짓 규칙을 사용하면 05AB1E 1의 유일한 진실 가치를 염두에두고 ¢P대안 2 바이 터와 함께 작동합니다.
Mr. Xcoder September

1
@ Mr.Xcoder 나는 확실히 실제로 현재 유효한의이 아니에요 - 문제는 출력 1과 0을 요청 - 4예를 들어, 어느 쪽도하지 1않고 0, 나처럼 행동하지 않습니다 1또는 0(같은 TrueFalse파이썬에서 할). 질문은 아마도 Truthy / Falsey를 요구해야하지만 현재는 그렇지 않습니다.
Jonathan Allan

3

Mathematica, 13 바이트

Boole[E!=##]&

순수한 기능. 세 개의 정수를 입력 및 리턴 0또는 1출력으로 사용합니다. 나는 이것이 David G. Stork의 대답 과 다소 비슷하다는 것을 알고 있지만 SlotSequence(와 비교하여 Boole@*Unequal) 바이트를 줄이려고 악용 합니다 .


3

brainfuck , 91 바이트

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

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

작동 원리

,>,>,                   'read input as A, B, and C
[-<-<->>]>>+            'compute A-C, B-C
++++++[>+++++++<-]+     'prepare output
<<<<[>]>>               'if A-C != 0 && B-C != 0
[
    <<<[-<->]           'compute A-B
    <[>]>>->            'if A-B != 0
    [>.<<<->>-]         'print 1
    <+
]
<+
[                       'else (this else is for both of the if statements, even though they are nested... wierd, I know)
    >>>[>]              
    <-.>                'print 0
]





2

파워 쉘, 27 25 바이트

-2 바이트 덕분에 @AdmBorkBork

+!(($args|group).Count-3)

테스트 스크립트 :

$f = {
+!(($args|group).Count-3)
}

&$f 1 2 3
&$f 3 2 1
&$f 2 1 3
&$f 2 2 3
&$f 2 1 1
&$f 2 1 2

설명:

    $args|group           # Group arguments
   (           ).Count    # Count of groups 
  (                   -3) # is 0 if inputed integers are unique
 !                        # operator not converts int to boolean: true if integers are unique
+                         # converts boolean to int: 1 if integers are unique, otherwise 0

1
26 바이트 -+(($args|group).count-eq3)
AdmBorkBork

큰! 감사합니다
mazzy





1

첨부 , 10 바이트

`==#Unique

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

이것은 연산자의 포크이며 다음 `==Unique같습니다.

{ _ == Unique[_] }

대안

{#_=#Unique[_]} (15 바이트)

Any##Same=>Pairs@Sort (21 바이트)

Any@{`=&>_[[0'1,1'2,2'0]]} (26 바이트)

&${not(x=y or y=z or x=z)} (26 바이트)

&${x/=y and y/=z and x/=z} (26 바이트)

{Any!Same=>Chop&2!_[0'1'1'2'2'0]} (33 바이트)


1

Java 9, 43 27 bytes

thanks to @Olivier Grégoire

(a,b,c)->a!=b&b!=c&a!=c?1:0 

Previous attempt:

(a)->a[0]==a[1]||a[0]==a[2]||a[1]==a[2]?0:1

1
Why not count it as 43 bytes
ASCII-only

1
27 bytes: (a,b,c)->a!=b&b!=c&a!=c?1:0.
Olivier Grégoire

Also, the first code (100 bytes) doesn't compile and uses == which is not applicable on String without issues which you encounter here (after compilation fix), and in the second code, Set.of method will throw IllegalArgumentException if any duplicate is provided. I'm tempted to -1 for not testing at all.
Olivier Grégoire

@olivier Apologies-it was late and I mixed up a few different ideas in my head. As for Set.of, I was just experimenting with Java 9 kinks and don’t have Java 9 myself. I should’ve read the documentation more carefully, sorry about that. I’ll edit once I get on my computer.
Quintec


1

T-SQL, 39 bytes

SELECT IIF(a=b OR b=c OR c=a,0,1)FROM s

Input is taken as separate columns a, b, c from a pre-existing table s, per our IO standards.

Tried a variation using COUNT DISTINCT from input taken as separate rows, but that was a couple bytes longer.


1

Pyth, 3 bytes

s{I

Takes input as a list.
Try it here

Explanation

s{I
 {IQ     Check if the (implicit) input is invariant under deduplication.
s        Cast to int.

If we're allowed to treat True and False as 1 and 0 (which they are under the hood in Pyth), we can drop the s to get down to 2 bytes.


1

SmileBASIC, 25 24 bytes

READ A,B,C?A-B&&B-C&&C-A



1

q 14 bytes

{x~distinct x}

Technically this solution will return '1b' or '0b', which is the way a boolean value is distinguished from a numeric type, though it retains all arithmetic functionality, and so is in essence a 1 or 0:

q)1b +35
36

To return 1 or 0 non-boolean you have the below, which takes the byte count to 21

{$[x~distinct x;1;0]}

1
{1&/0N>':x?x}
ngn


1

Jelly, 5 6 bytes

ɠḲQL=3

Try it online!

From 5 to 6 bytes because this is my first time and I messed up (whoops) fixed it now

ɠḲQL=3
^^^^^
||||Is it equal to three?
|||How many unique numbers do we have? (length of unique numbers array)
||Sort By Unique
|Split by Spaces
Read Input

1
Hello and welcome to PPCG. Does your code also work for 3 integers, or is it only functional for three digits?
Jonathan Frech

@Jonathan Frech Sadly, it only works for three 1 Digit numbers, it does this by sorting the input by unique characters, then testing if the amount of unique characters is the same length as the input. Maybe there is a way to get it to work with any 3 integers, but I think this is a good attempt for me at least!
Kitten Hugger

2
The challenge specifies You will be given 3 integers as input. which seems to render your answer invalid.
Jonathan Frech

@JonathanFrech Fixed it now! Was my first time doing this sort of thing so, I'm not the greatest at it.
Kitten Hugger
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.