# Matching each unique pokemon with a unique move

Background:

• There are 832 unique Pokemon in the Pokemon universe, and
• There are 728 fighting moves that the Pokemon can collectively learn.
• No Pokemon can learn to do every fighting move, and some Pokemon can only learn one.
• The average Pokemon can learn between 10-30 fighting moves , and
• Most fighting moves can be learned by multiple Pokemon.

Challenge:

I want to match as many unique Pokemon to one unique move. These are one-to-one matches.

Example with U.S. presidents:

• Name: Clinton, Moves: Democratify, Impeachify
• Name: Bush, Moves: Republicanify
• Name: Obama, Moves: Democratify, Healthcarify
• Name: Trump, Moves: Republicanify, Impeachify

Example solution that matches the highest number (in this case, all of them)

• Clinton-Democratify
• Bush-Republicanify
• Obama-Healthcarify
• Trump-Impeachify

Summary: What's an algorithm I could use to get the most potential matches of unique Pokemon to unique move?

Caveat: I'm just a regular guy, no computer science background, and a fuzzy memory of what I learned in my high school calculus class, and a VERY basic understanding of graph theory... so bonus points if you explain it simply enough for me to understand.