Você está na página 1de 3

INSTRUÇÕES

1. Mantenha a calma e faça o teste.

Você pode finalizar o teste e enviá-lo até a data limite explicada por
email.Este teste foi feito para avaliar seu raciocínio lógico e você deve
resolvê-lo da forma mais simples. Ao codificar, certifique-se de não
usar nenhuma biblioteca externa..

2. Depois de finalizar a prova, você deverá enviar a resposta para o email


tatielle.rodrigues@artefact.com. Nomeie o assunto do e-mail como no
exemplo abaixo:

Exemplo: Artefact - Caso escrito - Engenheiro de Dados;

3. As respostas dissertativas podem ser enviadas em “.pdf”. A solução do


algoritmo requerido DEVE ser enviada em “.r”, “.ipynb” ou “.py”..

4. Por fim, não esqueça de nomear seu documento com as respostas


seguindo o exemplo abaixo:

Seu nome - Cargo - Nível de antiguidade


Exemplo: Tatielle Rodrigues – Engenheira de Dados – Junior

1
Engenharia de Dados

Problema 1: Otimização de Polígonos

Consideremos o seguinte conjunto de pontos:

points = [(1, 1), (1, 2), (1, 3), (2, 3), (2, 4), (3, 4), (3, 3), (3,2), (2,2), (2,1), (1,1)]

Este conjunto de pontos define o seguinte polígono:

O objetivo do exercício é reduzir o conjunto anterior de pontos para manter


os pontos necessários para desenhar o mesmo polígono.

a) Encontre os pontos que não são necessários para desenhar o polígono e explique
por quê..

b) Escreva uma função que, dado o caminho de pontos de um polígono, retorne uma
lista reduzida que define o mesmo polígono. (Observe que todos os pontos do
conjunto são adjacentes). Escolha a linguagem que deseja responder a esta
pergunta e comente o código explicando cada etapa. Não se preocupe com
sintaxes.

2
Problema 2: Sintaxe incorreta com colchetes

a) Dada uma string composta por colchetes de abertura e fechamento, como verificar se
sua sintaxe está correta? Escolha a linguagem que deseja responder a esta
pergunta e comente o código explicando cada passo.

Exemplos: ()(()())está correto, ()))) não está, )(não está

b) Perguntas de acompanhamento (não é necessário código, apenas explique o que


você faria)

i) Como você faria isso com vários tipos de colchetes (), {}, [], '', ""

ii) Como usar isso para corrigir a sintaxe do código real não apenas com colchetes,
mas também com letras, números, etc.? (e.g.: ((a) → (a) )

iii) Como usar o que foi feito para gerar a sintaxe correta?

iv) Como desenvolver uma versão do algoritmo que produza todas as strings
válidas possíveis?

Problema 3: Arquitetura de Software

Com base no conceito de Microsserviços, APIs (REST, gRPC, etc…) e Bancos de Dados,
descreva resumidamente (você pode usar palavras, fluxos, marcadores, diagramas, etc… o
importante é que sua explicação seja o mais clara possível, e especifique as tecnologias
que você usará) como você aplicaria esse conceito para criar o seguinte aplicativo solicitado
por um cliente:

“Gostaria de criar uma ferramenta visual que fosse capaz de ler, escrever, atualizar e excluir
uma lista de verificação de “tarefas” para organizar minha agenda. Eu gostaria de poder
integrar isso ao meu Google Agenda também, você pode fazer isso?”.

Você também pode gostar