5 월 4 일 이후에 스타 트렉 참조와 관련된 도전을하는 것은 눈살을 찌푸리게 할 수 있습니다.
귀하, Luke, Anakin, Palpatine, Yoda 및 Han Solo는 Rock, Paper, Scissor, Lizard, Spock의 미친 토너먼트에 참여합니다.
여기서 중요한 것은 고정 된 이동 순서 만 사용할 수 있다는 것입니다. 주문이 "R"이면 모든 사람을 잃거나 이길 때까지 Rock을 사용해야합니다. 주문이 RRV 인 경우 2 개의 Rocks와 Spock을 사용해야하며,이기거나 잃을 때까지 계속 반복해야합니다.
Luke, Anakin, Palpatine, Yoda 및 Han Solo는 각각의 주문을 제출했으며 전문가 해커는 각 주문에 대해 손을 잡았습니다!
이 지식을 바탕으로 토너먼트 주문을 설계해야합니다. 모두가 이기고 싶어하기 때문에 모든 사람을 때리고 토너먼트에서이기도록 순서를 정하고 싶습니다. 그러나 모든 상황에서 가능한 것은 아닙니다.
당첨 주문이있을 경우이를 인쇄하십시오. 당신이 이길 수있는 방법이 없다면 -1 (또는 0 또는 False 또는 "불가능")을 인쇄하십시오
입력 : 5 개 주문 목록
출력 : 단일 주문 또는 -1
샘플 입력 1
R
P
S
L
V
샘플 출력 1
-1
설명 1
당신이 첫 번째 움직임에서 무엇을 하든지, 적어도 당신을 때리는 사람이있을 것이므로, 당신은 이길 수 없습니다.
샘플 입력 2
RPS
RPP
R
SRR
L
샘플 출력 2
RPSP
설명 2
첫 번째 움직임에서 Rock을 플레이하면 "L"과 "SRR"을 꺾고 나머지를 묶습니다. 도마뱀과 가위가 락을 잃기 때문입니다. 다음에 Paper를 플레이하면 "R"을 이기고 나머지 2와 묶습니다. 이것은 Rock이 Paper를 잃기 때문입니다. 다음에 가위를 사용하면 가위가 종이를 이길 때 "RPP"에 맞서 승리합니다.
마지막으로, 종이가 바위를 이길 때 종이로 "RPS"를 이길 것입니다.
다음은 표기법 목록입니다 (5 개의 리터럴을 사용할 수 있지만 답변에 명시하십시오).
R : Rock
P : Paper
S : Scissor
L : Lizard
V : Spock
가능한 모든 결과 목록은 다음과 같습니다.
winner('S', 'P') -> 'S'
winner('S', 'R') -> 'R'
winner('S', 'V') -> 'V'
winner('S', 'L') -> 'S'
winner('S', 'S') -> Tie
winner('P', 'R') -> 'P'
winner('P', 'V') -> 'P'
winner('P', 'L') -> 'L'
winner('P', 'S') -> 'S'
winner('P', 'P') -> Tie
winner('R', 'V') -> 'V'
winner('R', 'L') -> 'R'
winner('R', 'S') -> 'R'
winner('R', 'P') -> 'P'
winner('R', 'R') -> Tie
winner('L', 'R') -> 'R'
winner('L', 'V') -> 'L'
winner('L', 'S') -> 'S'
winner('L', 'P') -> 'L'
winner('L', 'L') -> Tie
winner('V', 'R') -> 'V'
winner('V', 'L') -> 'L'
winner('V', 'S') -> 'V'
winner('V', 'P') -> 'P'
winner('V', 'V') -> Tie
이것은 code-golf 이므로 가장 적은 바이트가 이깁니다.
추신 : 더 많은 테스트 사례가 필요하면 알려주십시오.