Skip to content

Instantly share code, notes, and snippets.

@mbklein
Last active June 8, 2018 13:01
Show Gist options
  • Save mbklein/f86e5a23e6e0dd31ac2c0c1cd807c094 to your computer and use it in GitHub Desktop.
Save mbklein/f86e5a23e6e0dd31ac2c0c1cd807c094 to your computer and use it in GitHub Desktop.
Find championship meetings between two teams, neither of which has won a prior championship
# Assuming data is a tab-delimited list with columns
# date, winner, loser
def champs(data)
winners = {}
losers = {}
data.split(/\n/).sort.each do |line|
date, winner, loser = line.split(/\t/)
winners[winner] = date unless winners.key?(winner)
losers[loser] = date unless winners.key?(loser)
end
winners = winners.invert
losers = losers.invert
winners.delete_if { |k,v| not losers.key? k }
losers.delete_if { |k,v| not winners.key? k }
winners.keys.sort.reverse.each do |date|
puts "#{date}: #{winners[date]} def. #{losers[date]}"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment