문자 주사위는 단어 게임에서 일반적입니다. 예를 들어, boggle 주사위로 재미있는 단어를 철자하는 것이 재미있을 수 있습니다. 소수의 주사위를 잡으면 특정 단어의 철자를 쓸 수 없을 가능성이 있습니다. 이 도전은 그 아이디어의 일반화입니다.
도전
얼굴과 단어가 각각 1 개 이상인 주사위 목록이 주어지면 주어진 주사위를 사용하여 해당 단어의 철자를 사용할 수 있는지 여부를 결정해야합니다 (이 경우 진실한 결과를 반환해야 함). 각 주사위에서 한 글자 만 사용할 수 있으며 주사위는 한 번만 사용할 수 있습니다. 주어진 주사위를 모두 사용할 필요는 없습니다.
예
간단한 예에서, 주사위 [[A], [C], [T]]와 문자열 CAT를 사용하면 결과는 참입니다. 물론 BAT는 B와 주사위가 없기 때문에 거짓을 반환합니다.
주사위 세트로 [[A, E, I, O, U], [A, B, C, T], [N, P, R]]를 지정하면 ART, TON 및 CUR에 대해 true를 반환합니다. CAT, EAT 및 PAN에는 주사위를 재사용해야하므로 false입니다. 주사위가 충분하지 않기 때문에 CRAB에 이러한 주사위로 철자를 쓸 수 없다는 것도 상당히 분명합니다.
주사위 세트로 [[A, B, C], [A, E, I], [E, O, U], [L, N, R, S, T]]가 주어지면 CAT, BEE, BEAN, TEA, BEET 및 BAN을 철자하지만 LONE, CAB, BAIL, TAIL, BAA 또는 TON 철자를 사용할 수 없습니다
동일한 다이의 배수가있을 수 있습니다. [[A, B, C], [A, B, C], [A, B, C]]가 주어지면 CAB, BAA, AAA 등을 철자 할 수는 있지만 분명히 A가 없으면 아무것도 없습니다. B 또는 C.
규칙
- 악용 표준 허점 없음
- 이것은 code-golf 이므로 가장 짧은 코드가 승리합니다.
- 단어와 주사위 모두 대문자로만 구성되어 있다고 가정 할 수 있습니다.
- 단어의 길이는 항상 1 글자 이상이고 항상 최소 1 개의 주사위가 있다고 가정 할 수 있습니다.
- 주사위에는 같은 글자가 하나 이상 있다고 가정 할 수 있습니다.
- 입력 및 출력은 편리한 형식 일 수 있습니다.