Este repositório contém a solução para o desafio técnico da Paradigma, abrangendo duas tarefas principais: consulta SQL e algoritmo de construção de árvore binária em C#.
A avaliação técnica foi desenvolvida para demonstrar capacidade de interpretação de especificações, lógica de programação e criatividade na resolução de problemas. O projeto utiliza tecnologias modernas como C#, .NET e SQL Server, seguindo as melhores práticas de arquitetura e design patterns.
desafio-tecnico-paradigma/
├── desafio-tecnico-paradigma-task-1/ # Tarefa 1 - SQL
│ ├── sql/
│ │ ├── create_tables.sql # Criação das tabelas
│ │ └── seed_data.sql # Dados de exemplo
│ └── query.sql # Consulta SQL principal
└── desafio-tecnico-paradigma-task-2/ # Tarefa 2 - C#
└── DesafioTecnicoParadigma/
├── DesafioTecnicoParadigma.Application/
│ ├── Dtos/ # Data Transfer Objects
│ ├── Interfaces/
│ │ ├── Services/ # Interfaces de serviços
│ │ ├── Validators/ # Interfaces de validadores
| | └── UseCases/ # Interfaces de casos de uso
│ ├── Services/ # Implementações de serviços
│ ├── UseCases/ # Casos de uso
│ └── Validators/ # Validadores
├── DesafioTecnicoParadigma.Domain/
│ └── Exceptions/ # Exceções de domínio
├── DesafioTecnicoParadigma.IoC/
│ └── DependencyInjection/ # Configuração de DI
└── DesafioTecnicoParadigma.Presentation/
└── ConsoleUI/ # Interface de usuário
Encontrar os colaboradores com maior salário em cada departamento.
Construir uma árvore binária a partir de um array seguindo regras específicas:
- Raiz: Maior valor do array
- Galhos da esquerda: Valores à esquerda da raiz, em ordem decrescente
- Galhos da direita: Valores à direita da raiz, em ordem decrescente
Entrada: [3, 2, 1, 6, 0, 5]
Raiz: 6
Galhos da esquerda: 3, 2, 1
Galhos da direita: 5, 0
6
/ \
3 5
/ \
2 0
/
1
Entrada: [7, 5, 13, 9, 1, 6, 4]
Raiz: 13
Galhos da esquerda: 7, 5
Galhos da direita: 9, 6, 4, 1
13
/ \
7 9
/ \
5 6
\
4
\
1
- .NET 8 - Framework principal
- C# 12 - Linguagem de programação
- SQL Server - Banco de dados (Tarefa 1)
- Dependency Injection - Injeção de dependências
- Clean Architecture - Arquitetura limpa
- SOLID Principles - Princípios de design
- .NET 8 SDK
- SQL Server (para Tarefa 1)
- Visual Studio 2022 ou VS Code
- Execute o script
create_tables.sqlpara criar as tabelas - Execute o script
seed_data.sqlpara inserir dados de exemplo - Execute a consulta em
query.sql
# Navegar até o diretório do projeto
cd desafio-tecnico-paradigma-task-2/DesafioTecnicoParadigma
# Restaurar pacotes
dotnet restore
# Executar o projeto
dotnet runO sistema oferece um menu interativo com as seguintes opções:
╔══════════════════════════════════════════════════════════════╗
║ MENU DO SISTEMA ║
╠══════════════════════════════════════════════════════════════╣
║ ║
║ [1] Usar Arrays de Exemplo ║
║ [2] Inserir seu Próprio Array ║
║ [3] Sair do Sistema ║
║ ║
╚══════════════════════════════════════════════════════════════╝