Dojo 9: Secret Santas

Dessa vez vieram 7 pessoas pra praticar no Dojo UFSC, algumas já conhecidas :) O número de participantes foi muito bom, e conseguimos trabalhar bem em equipe…

Como ninguém trouxe sugestões próprias de problemas, apresentamos alguns “pré-selecionados” pelo mestre, e foi escolhido o Secret Santas (http://rubyquiz.com/quiz2.html). O problema requer que o nosso programa faça um sorteio “inteligente” de amigos secretos.

No jeito manual de se escolher pares de amigos secretos (com os papeizinhos) sempre tem a chatice de que alguém acaba se pegando, e daí todo mundo coloca de volta no saco – sem piadinhas por favor :P Além disso, na hora de revelar, sempre acontece os tais “ciclos”: A pega B, B pega C e C pega A.

O nosso objetivo então era fazer um programa que, dada uma lista de nomes como entrada, fizesse a escolha dos pares de amigos secretos, sem que ninguém pegasse a si mesmo, e com o maior “ciclo” possível.

Exemplo válido:
Nomes: João, Maria, Marcos, Ana, Cláudia
Amigos: (João, Marcos), (Marcos, Cláudia), (Cláudia, Ana), (Ana, Maria), (Maria, João)

Exemplo inválido (Alguém se pega):
(João, Marcos), (Marcos, Marcos), …

Exemplo inválido (”ciclo” pequeno):
(João, Marcos), (Marcos, Cláudia), (Cláudia, João), …

Havia ainda mais um requisito no problema: ninguém pode pegar um amigo secreto da sua família, ou seja, pessoas que têm o mesmo sobrenome não podem se pegar – por favor, sem piadinhas aqui também.

Apesar de não termos conseguido resolver o problema, chegamos “quase lá”. Aí vaí o código:

Coding Dojo 2010-05-19: Secret Santas

No fim das quase duas horas de árdua programação e diversão fizemos a retrospectiva do encontro:

Bom:

  • Problema desafiador
  • Quantidade de pessoas adequada
  • Terminou na hora
  • Pessoas novas

Ruim:

  • Falta de Monitor
  • Problema não resolvido
  • Um participante saiu no meio da reunião
  • Atrasos
  • Windows
4 Comments Posted in Dojos
Tagged , ,

4 Comentários

  1. Gostei desse problema. Vou sugerir aqui no DojoRio.

    Vocês não preferem usar o Github pra colocar os códigos dos dojos?

Deixe uma resposta

Using Gravatars in the comments - get your own and be recognized!

XHTML: These are some of the tags you can use: <a href=""> <b> <blockquote> <code> <em> <i> <strike> <strong>