두 목록을 최대로 비교


14

음이 아닌 정수의 두 가지 목록이 주어지면 최대 값이 가장 높은 목록을 반환하십시오 (예 :) [4, 2], [3, 3, 1] -> [4, 2].

둘 다 최대 값이 같으면이 최대 값을 더 포함하는 목록을 반환하십시오 (예 :) [4, 2, 4], [4, 3, 3, 3, 1, 3] -> [4, 2, 4].

이러한 비교 후에 동일한 경우 비교는 동일하지만 다음으로 가장 높은 항목 (예 :)으로 수행 [2, 3, 4, 4], [4, 4, 3, 3, 1] -> [4, 4, 3, 3, 1]하십시오.

이러한 모든 비교 후에도 여전히 동일한 것으로 간주되면 더 긴 목록을 출력하십시오 (예 :) [4, 3, 2, 1, 0], [1, 2, 3, 4] -> [4, 3, 2, 1, 0].

코드를 가능한 짧게 만드십시오.

테스트 사례

[4, 4, 4, 4, 2, 4], [4, 4, 4, 4, 3, 2] -> [4, 4, 4, 4, 2, 4]
[0], [] -> [0]
[0, 0], [0] -> [0, 0]
[1], [0, 0] -> [1]
[4, 4, 4, 4, 4, 2], [4, 4, 4, 4, 4] -> [4, 4, 4, 4, 4, 2]
[1, 0], [0, 0, 0] -> [1, 0]

답변:




4

젤리 , 4 바이트

NÞÞṪ

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

작동 원리

NÞÞṪ  Main link. Argument: [u, v] (pair of vectors)

  Þ   Sort [u, v], using the link to the left as key.
NÞ      Sort u (or v) by the negatives of its values.
        This sorts the vector in descending order.
   Ṫ  Tail; select the last, lexicographically larger vector.

2

하스켈, 37 35 바이트

import Data.Lists
argmax$sortOn(0-)

입력은 예를 들어 두 요소 목록으로 간주됩니다 ( argmax$sortOn(0-) ) [[4,4,4,4,2,4], [4,4,4,4,3,2]].

입력 목록에서 값을 무시하여 정렬 후 최대 값 인 요소를 찾으십시오 (예 : 내림차순).


2

클린 , 42 바이트

import StdEnv
s=sortBy(>)
?a b|s a>s b=a=b

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


2
허, 흥미로운 구문입니다. " a패턴 가드가 참이면 b그렇지 않으면 돌아 간다"는 뜻 입니까?
Laikoni

@Laikoni Yep. Clean의 패턴 가드는 문법적으로 C 스타일과 유사하며 if ... else if ...중첩 / 연쇄가 가능합니다. 생략 할 수있는 것처럼 else if(true)마지막 보호 조건을 건너 뛸 수 있습니다. (단, 한 줄에 한 번만)
Οurous

1

자바 스크립트 (ES7), 52 바이트

(a,b,m=d=>d.map(n=>N+=1e4**n,N=0)&&N)=>m(a)>m(b)?a:b

이 방법은 없이 작동합니다 배열 정렬 합니다. 대신 각 배열의 요소에 대해 10,000의 합계를 계산합니다. 가장 큰 합은 가장 높은 점수를 가진 배열을 나타냅니다. (이 솔루션은 배열에 10,000 개 이상의 요소가 없다고 가정합니다.)

테스트 사례







0

JavaScript (ES6), 98 바이트

(a,b,g=a=>[...a].sort((a,b)=>b-a),h=([a,...b],[c,...d])=>a==c?h(b,d):a<c|!(1/a))=>h(g(a),g(b))?b:a

gsort배열 h의 요소 별 비교 를 재귀 적으로 수행하는 동안 해당 배열 의 매개 변수 사본을 역순으로 정렬합니다 ( 배열을 변경하므로) .


0

펄 6 , 17 바이트

*.max(*.sort(-*))

그것을 테스트하십시오 (Lambda Lambda Lambda)

  • -* 입력을 수치 적으로 무효화하는 람다
  • *.sort(-*) 요소를 비교하기 위해 적용한 결과를 사용하는 람다
  • *.max(*.sort(-*)) 해당 결과의 최대 값을 찾고이를 사용하여 반환 할 입력을 결정하는 람다.

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