프로그래머의 날 29 – 카드 덱

문제 설명
Connie는 영어 단어가 적힌 카드 두 팩을 선물로 받았습니다. Conny는 카드에 있는 단어를 사용하여 다음 규칙을 사용하여 원하는 순서대로 일련의 단어를 만들 수 있는지 알고 싶습니다. 사용하지 않고는 다음 카드로 이동할 수 없습니다. 기존에 있는 단어의 순서를 변경할 수 없으며 일련의 단어를 순서(“I”, “want”, “to”, “drink”, “water”)로 만들고 싶다면 덱(“want”)의 경우 “, “to”)는 순서대로 첫 번째 데크를 가집니다. 에서 “i”를 사용한 다음 두 번째 데크에서 “want” 및 “to”를 사용하고 첫 번째 데크에서 “drink” 및 “water”를 사용하면 임의의 순서로 일련의 단어 생성 문자열 cards1, cards2의 배열 및 원하는 단어 배열 대상을 매개변수로 지정하고, cards1에 쓰여진 단어로 대상을 생성하면 “예”를 반환하는 solve 함수를 완성하고 cards2는 이고 만들 수 없는 경우 “아니오”일 수 있습니다.

제한
1 ≤ 카드 길이1, 카드 길이2 ≤ 10
1 ≤ 맵 길이1(i), 맵 길이2(i) ≤ 10
cards1과 cards2에는 서로 다른 단어만 존재합니다.
2 ≤ 목표 길이 ≤ 카드 길이1 + 카드 길이2
1 ≤ 목표 길이(i) ≤ 10
대상의 요소는 cards1 및 cards2의 요소로만 구성됩니다.
cards1, cards2 및 goal의 문자열은 모두 알파벳의 소문자입니다.

I/O 예시 설명
I/O 예제 #1
텍스트와 동일합니다.
I/O 예제 #2
cards1에 “i”를 사용하고 cards2에 “want”와 “to”를 사용하여 “i want to”를 형성할 수 있지만 “drink” 앞에 “water”를 사용해야 하므로 문장을 완성할 수 없습니다. 따라서 “아니오”를 반환합니다.

논평


이 함수의 목표는 에 주어진 순서대로 cards1과 cards2를 사용하여 target이라는 일련의 카드를 생성할 수 있는지 확인하는 것입니다.

for 문을 실행하여 결과 문인 대상의 요소를 추출합니다.

if 문에 cards1, cards2가 포함된 이유는 remove로 계속해서 제거되기 때문에 list 요소의 개수가 0이 되면 list index error가 출력된다.

이를 확인하려면 false true를 설정하십시오.

대상의 첫 번째 요소와 cards1 요소가 동일하면 cards1 목록에서 해당 요소를 삭제합니다.

카드 2에 대해서도 동일하게 수행하십시오.

cards1 및 cards2가 대상의 해당 요소와 일치하지 않으면 No가 반환됩니다.

완료되면 돌려주세요.