valdineijunior / roteiro-de-estudos Goto Github PK
View Code? Open in Web Editor NEWAqui faço o controle de meus estudos pessoais na área de programação.
Aqui faço o controle de meus estudos pessoais na área de programação.
Given a year, return the century it is in. The first century spans from the year 1 up to and including the year 100, the second - from the year 101 up to and including the year 200, etc.
Um anagrama é uma palavra ou frase formada com o re-arranjo de todas as letras de uma outra palavra ou frase (sem sobra ou falta). Exemplos:
A palavra barco é um anagrama da palavra cobra (todas as letras de “cobra” usadas em “barco).
A palavra mar não é um anagrama da palavra roma (a letra “o” em “roma” não foi usada).
A palavra sal não é um anagrama da palavra mal (a letra “s” de “sal” não existe em “mal”).
Escreva um programa na sua linguagem e bibliotecas preferidas que:
Leia a expressão (que pode ser uma frase ou apenas uma palavra) a ser usada para a criação dos anagramas da linha de comando. Apenas as letras de “A” a “Z” deverão ser consideradas (ignore espaços e converta todas as letras minúsculas para maíusculas). Retorne erro e aborte a execução se caracteres inválidos forem encontrados na expressão (qualquer caracter não alfabético que não seja espaço, incluindo números, pontuação, ou caracteres acentuados).
Leia uma lista de palavras válidas do arquivo words.txt (Download). O arquivo é formatado com uma palavra por linha, com palavras da língua inglesa (Nota: apesar de várias tentativas, o autor não conseguiu achar uma lista “limpa” de palavras da língua portuguesa).
Imprima todas as combinações possíveis de anagramas (sem repetição de linhas ou palavras). Os anagramas devem conter apenas palavras válidas (lidas do arquivo acima).
O formato de saída deve conter múltiplas linhas (uma por anagrama), com as palavras ordenadas dentro de cada linha (veja Exemplos abaixo).
O programa deve ser capaz de calcular e imprimir a lista de anagramas possíveis para uma expressão de até 16 caracteres em menos de 60 segundos.
Expressão é uma palavra:
$ ./anagramarama "vermelho"
ELM HO REV
ELM OH REV
OHM REVEL
LEVER OHM
ELM HOVER
HOLM VEER
HELM OVER
HELM ROVE
Expressão é uma frase (lembre-se de ignorar espaços e converter todas as letras para maiúsculas):
$ ./anagramarama "oi gente"
GO I TEEN
GENE I TO
GET I ONE
EON GET I
ENG I TOE
GEE I TON
GEE I NOT
EGO I NET
EGO I TEN
GEE IT NO
GEE IT ON
GO IN TEE
GEE IN TO
GENIE TO
GONE TIE
GEE OINT
GEE INTO
GEE TONI
GINO TEE
GENE ITO
EGO TINE
Novamente: Por razões de simplicidade, apenas caracteres alfabéticos devem ser considerados (A-Z apenas, excluindo números, pontuação, e caracteres acentuados).
Esse problema é um caso clássico para um algoritmo recursivo.
Tentativas usando força bruta não vão funcionar.
Esse desafio pode ser considerado como um desafio médio/difícil. Discuta dúvidas com os administradores e outros participantes no grupo OsProgramadores do Telegram.
Escreva um programa que leia um arquivo texto contendo uma lista de frações em ASCII (uma por linha) e produza na saída a versão simplificada de cada fração. Números simples assumem denominador 1 (apenas imprima o número).
Divisões inteiras como 81/9 devem imprimir o número inteiro 9. Em caso de erros na entrada (como divisão por zero), imprima “ERR” em maíusculas.
Dada a entrada abaixo:
14/3
3/8
4/8
4/3
5
10/0
48/12
A seguinte saída seria produzida:
4 2/3
3/8
1/2
1 1/3
5
ERR
4
A solução leva em consideração o arquivo teste fornecido, contendo as seguintes frações:
14/3
1/2
3/8
237/122
10492/6637
5/25
152/776
917/1008
2/1
120
942/227
197/199
283791739/113312387
13/13
15/0
Use dicionários online, começando com inglês/português, para conferir pronúncia e entender a categoria gramatical.
Examine palavras em diferentes contextos para melhorar a compreensão.
Antes de ler um texto, obtenha uma visão geral examinando imagens e tópicos principais.
Identifique padrões, palavras-chave e extraia o assunto principal do texto.
Leia todos os dias e evite fixar-se em uma única ideia ou palavra.
Compartilhe o conteúdo com outras pessoas, peça opiniões ou escreva um resumo.
Pratique diariamente, mesmo que por curtos períodos, e expanda seu vocabulário.
Preste atenção à pronúncia e pratique a fala em voz alta.
Ouça algo em inglês todos os dias.
Ao escrever, considere quem é o público, o que está escrevendo, onde, quando, por que e para quê. Use ferramentas de edição de texto.
Given a sequence of integers as an array, determine whether it is possible to obtain a strictly increasing sequence by removing no more than one element from the array.
Note: sequence a0, a1, ..., an is considered to be a strictly increasing if a0 < a1 < ... < an. Sequence containing only one element is also considered to be strictly increasing.
Example
For sequence = [1, 3, 2, 1], the output should be
solution(sequence) = false.
There is no one element in this array that can be removed in order to get a strictly increasing sequence.
For sequence = [1, 3, 2], the output should be
solution(sequence) = true.
You can remove 3 from the array to get the strictly increasing sequence [1, 2]. Alternately, you can remove 2 to get the strictly increasing sequence [1, 3].
Ao dar o troco, é provável que você queira minimizar o número de moedas que está distribuindo para cada cliente, para não acabar com o estoque (ou irritar o cliente!). Felizmente, a ciência da computação deu aos caixas em todos os lugares maneiras de minimizar o número de moedas devidas: algoritmos ambiciosos, também conhecidos como gulosos ou gananciosos.
De acordo com o Instituto Nacional de Padrões e Tecnologia (NIST), um algoritmo ambicioso é aquele “que sempre pega a melhor solução imediata, ou local, enquanto encontra uma resposta. Algoritmos ambiciosos encontram a solução geral ou globalmente ideal para alguns problemas de otimização, mas podem encontrar soluções menos do que ideais para algumas instâncias de outros problemas.”
O que tudo isso significa? Bem, suponha que um caixa deva a um cliente algum troco e na gaveta desse caixa estejam moedas de 25, 10, 5 e 1 centavo(s). O problema a ser resolvido é decidir quais moedas e quantas de cada uma entregar ao cliente. Pense em um caixa “ganancioso” como alguém que quer tirar o maior proveito possível desse problema com cada moeda que tira da gaveta. Por exemplo, se algum cliente deve pagar 41 centavos, a maior “mordida”(ou seja, melhor “mordida” imediata ou local) que pode ser feita é 25 centavos. (Essa mordida é "melhor" na medida em que nos deixa mais perto de 0 ¢ mais rápido do que qualquer outra moeda faria.) Observe que uma mordida desse tamanho reduziria o que era um problema de 41 ¢ a um problema de 16 ¢, já que 41 - 25 = 16. Ou seja, o restante é um problema semelhante, mas menor. Desnecessário dizer que outra mordida de 25 centavos seria muito grande (supondo que o caixa prefere não perder dinheiro), e assim nosso caixa ganancioso mudaria para uma mordida de 10 centavos, deixando-o com um problema de 6 centavos. Nesse ponto, a ganância pede uma mordida de 5 centavos seguida de uma mordida de 1 centavo, ponto em que o problema é resolvido. O cliente recebe quatro moedas no total. Acontece que essa abordagem gananciosa (do algoritmo) não é apenas ótima localmente, mas também globalmente para a moeda dos Estados Unidos (e também da União Europeia). Ou seja, desde que o caixa tenha o suficiente de cada moeda, essa abordagem do maior para o menor renderá o menor número possível de moedas.
Técnicas de estudo, organização e aprendizagem
Pensa no problema de forma menos intensa, se deixando dispersar.
Depois volte a focar.
Crie analogias, tentando explicar o que acabou de estudar.
Utilize a técnica da repetição espaçada. Tente relembrar o que viu.
Dormir é de extrema importância.
Faça um overview do conteúdo antes de se aprofundar nele tente pegar a idéia básica é entender onde ele se encaixa.
Use pequenos mini testes para ver se você está realmente aprendendo o assunto.
Erros são coisas boas quando se está aprendendo.
Pratique deliberadamente o que você acha mais difícil para ganhar completo domínio sobre o assunto.
Mantenha um planejamento para que você facilmente siga observando o que funciona e o que não funciona.
Não pense muito, “Sit down right now”, sente a bunda na cadeira, abra seus estudos e comece.
Monte seu trabalho como uma série de pequenos desafios.
Aproveite por alguns minutos a sensação de felicidade e triunfo.
Tente se colocar em um ambiente com poucas oportunidades para procrastinação.
Anote tudo que precisar para tirar uma preocupação da sua cabeça, e colocá-la no papel.
Coma primeiro seus sapos a cada dia, fazendo o que é mais importante.
Tente criar uma imagem visual memorável, representando um item chave que deseja recordar.
Além de meramente ver, tente sentir, ouvir e até mesmo cheirar aquilo que está tentando lembrar. Quanto mais engraçada e mais evocativa a imagem é, melhor.
Crie metáforas ou analogias.
Fazer parte dos seus estudos com amigos, você pode perceber mais facilmente onde o seu raciocínio se perdeu.
Rever sua própria lista de afazeres ao se preparar para um teste pode aumentar de maneira significativa as suas chances de sucesso.
A forma como você interpreta a reação do seu corpo a estes químicos faz toda a diferença. Se você muda o seu pensamento de "este teste me deixa receoso" para "este teste me deixa entusiasmado para fazer o meu melhor", isso ajuda a melhorar a sua performance.
Quando for possível, você deve piscar, mudar sua atenção, e então checar novamente suas respostas, usando uma perspectiva mais abrangente, perguntando a si mesmo, isso realmente faz sentido?
O modo focado é baseado em conhecimento prévio. Ele usa disso para tentar resolver e juntar peças do que se está tentando aprender ou resolver. E restringe seus pensamentos a assuntos específicos, para não te dispersar.
Mas muitas vezes seu conhecimento prévio não é capaz de resolver o problema em questão, então você precisa de novas formas de pensar, novas perspectivas.
Aí que se faz útil o modo difuso, onde você relaxa e pensa no problema de forma menos intensa, se deixando dispersar nas idéias, criando abordagens e conexões com diversos outros assuntos. Após esse processo, você consegue abordar o problema de um outro ponto de vista com a cabeça fresca.
A troca entre esses dois modos é muito proveitosa no aprendizado de conteúdos novos, no processo de criação entre outros. E para transitar por esses dois modos, você pode manter um período de estudos intensivo, sem interrupções e distrações. E após este período fazer uma pausa, tentando pensar somente superficialmente sobre seu problema, podendo dispersar entre seus pensamentos. Em seguida volta a focar em seu problema.
Então quando estiver preso em algum problema ou antes de um processo de criação utilize esses dois modos de pensar. É comum durante essa troca encontrar uma solução para o seu problema que era relativamente óbvia.
As analogias são uma poderosa ferramenta de aprendizado, então tente utilizá-la para se auto explicar ou explicar a outras pessoas o que acabou de aprender. Isso facilita no entendimento e na fixação de conteúdos.
Ao nos relacionarmos com algo novo é comum, que em algumas horas ou dias acabemos esquecendo desta informação, pois o cérebro tende a armazenar o que é importante e descartar o restante, então a técnica da repetição espaçada ajuda a mover informações para sua memória de longo prazo.
Ela consiste em rever um conteúdo, reviver uma situação ou treinar algo de tempos em tempos, desta forma seu cérebro considerará essa vivência importante, pois sempre está precisando dessas informações. Então ele formará estruturas neurais mais sólidas para que tenha acesso mais fácil a esse conhecimento.
Dormir é de extrema importância para sua capacidade de resolver problemas e sua memória, nesse processo o corpo limpa as toxinas do seu cérebro o mantendo limpo e saudável, é nesse processo que ele também descarta informações desnecessárias e fortalece o que é importante. Sonhar com o que se está a estudar pode aumentar substancialmente o seu compreendimento.
São blocos de memória, pedaços de informação, uma rede de neurônios que sintetizam ideias principais ou ações.
Blocos de memória podem ser maiores e mais complexos. Mas ao mesmo tempo, eles são um item único que você pode encaixar como uma fita no espaço de sua memória de trabalho.
Blocos de memória são melhor construídos com foco, atenção não dividida e compreensão da ideia básica. Faça um overview do conteúdo antes de se aprofundar nele tente pegar a idéia básica é entender onde ele se encaixa.
E prática, repetição espaçada para ajudar a aprofundar seus padrões e ajudá-lo a entender o contexto geral.
Só recordar, tentar lembrar os principais pontos sem olhar na página é uma das melhores formas de construir a associação em blocos. Caso não se recorde, aí sim pode estudar novamente o conteúdo.
Transferência é a ideia de que um bloco de memória que você já dominou em uma área geralmente pode ajudar você a aprender mais facilmente blocos de memória de informação em diferentes áreas que podem compartilhar surpreendentes similaridades.
Aprenda a reconhecer quando você está se enganando sobre quando você está realmente aprendendo o assunto.
Teste-se com frequência. Use pequenos mini testes para ver se você está realmente aprendendo o assunto ou se você está se enganando, pensando que está aprendendo quando não está.
Recordar é na verdade uma forma de mini teste Tente evitar depender demais de marcações, que podem enganar você fazendo-o pensar que o material está entrando em seu cérebro quando não está.
Erros são coisas boas quando se está aprendendo. Eles permitem você identificar ilusões de competência.
Evite praticar só a parte fácil, que podem fazer você ter a ilusão de que dominou o assunto.
Pratique deliberadamente o que você acha mais difícil para ganhar completo domínio sobre o assunto.
Einstellung, que pode ser traduzido como mecanização, é quando seu pensamento inicial, uma ideia que você tinha em mente, ou um padrão neural que você já desenvolveu bem e fortaleceu, impede uma ideia ou solução melhor de ser encontrada. Ou impede você de ser flexível o suficiente para aceitar novas soluções, melhores ou mais apropriadas.
Mantenha um planejamento para que você facilmente siga quando atingir suas metas e possa observar o que funciona e o que não funciona.
Comprometa-se a certas rotinas e atividades todo dia. Escreva as atividades planejadas na noite anterior para que seu cérebro tenha tempo de lidar com seus objetivos e ajudar a assegurar o sucesso.
Não pense muito, “Sit down right now”, sente a bunda na cadeira, abra seus estudos e comece.
Monte seu trabalho como uma série de pequenos desafios. Certifique-se sempre de que você e seus zumbis ganhem muitas recompensas.
Aproveite por alguns minutos a sensação de felicidade e triunfo, o que também dá ao seu cérebro uma oportunidade de temporariamente trocar de modo.
Propositalmente atrase as recompensas até você ter completado a tarefa.
Cuidado com as pistas para a procrastinação. Tente se colocar em um ambiente com poucas oportunidades para procrastinação tal como uma seção silenciosa de uma biblioteca.
Confie em seu novo sistema. Você quer trabalhar duro nos momentos de concentração focada e também confiar no sistema o suficiente para que quando chegue a hora de relaxar, você verdadeiramente relaxe sem sentimento de culpa ou preocupação.
Anote tudo que precisar para tirar uma preocupação da sua cabeça, e colocá-la no papel. Pois assim você pode relaxar sabendo que o que precisa fazer está anotado.
Tenha planos reserva para quando você ainda procrastinar. Ninguém é perfeito, apesar de tudo.
Coma primeiro seus sapos a cada dia, fazendo o que é mais importante.
Aprendendo a usar sua memória em uma forma mais disciplinada, e ainda criativa, ajuda você a focar sua atenção, mesmo que você crie conexões desorganizadas que construam fortes memórias.
Aqui estão ideias chave sobre memória já vistas.
Praticando e repetindo, tudo num dia, é uma má idéia. Você deve estender sua prática por vários dias.
Quando você domina uma técnica ou conceito, de certa forma se compactam as idéias, Assim elas podem ocupar menos espaço na sua memória de trabalho Isso libera seu espaço mental de pensamento, para que ele possa mais facilmente capturar outras ideias.
Nós temos sistemas de memória espacial e visual incríveis. Se você ativar esses sistemas, isso vai ajudar a melhorar a sua memória. Para começar a ativar seu sistema de memória visual, tente criar uma imagem visual memorável, representando um item chave que deseja recordar.
Além de meramente ver, tente sentir, ouvir e até mesmo cheirar aquilo que está tentando lembrar. Quanto mais engraçada e mais evocativa a imagem é, melhor.
Como sempre, repetição ao longo de vários dias ajuda muito.
Outra chave para a memorização é criar grupos significativos que simplifiquem o material. Tente associar números com anos ou com sistemas com os quais você está familiarizado como contagem de tempo.
Várias disciplinas usam frases decoráveis. A técnica do palácio da memória, colocar imagens memoráveis em uma cena familiar a você, lhe permite ir fundo na força da sua memória visual, fornecendo uma maneira particularmente poderosa para agrupar coisas que você deseja lembrar.
Criando grupos significativos e abreviações, você pode simplificar e particularizar o que está tentando lembrar e assim poder facilmente guardar na memória.
E ao memorizar o material que você entende, você pode internalizar o material de maneira profunda. Você está reforçando a livraria mental que precisa. para se tornar um verdadeiro mestre do assunto.
Metáforas e analogias não são apenas para a arte e a literatura. Uma das melhores coisas que você pode fazer não só para lembrar, mas para entender mais facilmente conceitos em muitas áreas variadas, é criar uma metáfora ou analogia para eles.
Geralmente, quanto mais visual, melhor Nós aprendemos com o vencedor do Prêmio Nobel Santiago Ramon y Cajal que, se você mudar seus pensamentos, você pode real e verdadeiramente mudar a sua vida. Parece que as pessoas podem aumentar o desenvolvimento de seus circuitos neuronais pela prática de pensamentos que usam esses neurônios.
Como Santiago Ramon y Cajal, você pode se orgulhar em buscar o sucesso por causa das mesmas coisas que fazem outras pessoas dizer que você não consegue fazer.
Lembre-se que quando você passa rápido por sua lição de casa ou por uma questão do teste e você não retorna para checar o seu trabalho você está agindo como uma pessoa que se recusa a usar partes do seu cérebro Você não está fazendo uma pausa para um descanso mental e revisitando o que você havia feito com uma visão mais ampla geral em mente, para checar se aquilo faz sentido.
Excesso de confiança nos seus resultados podem ser o resultado de usar apenas um modo de pensar. Por tornar isso um ponto a fazer parte dos seus estudos com amigos, você pode perceber mais facilmente onde o seu raciocínio se perdeu.
Fazer um teste é assunto sério. Assim como pilotos de caça e médicos repassam seus checklists antes do voo e da cirurgia, rever sua própria lista de afazeres ao se preparar para um teste pode aumentar de maneira significativa as suas chances de sucesso.
Estratégias contra intuitivas, como técnicas de começar do mais difícil para o mais fácil podem fornecer ao seu cérebro uma chance de refletir sobre desafios mais difíceis mesmo enquanto você estiver focando em outros problemas mais simples.
Aqui estão algumas dicas finais para fazer testes: O corpo produz substâncias químicas quando está sob estresse. A forma como você interpreta a reação do seu corpo a estes químicos faz toda a diferença. Se você muda o seu pensamento de "este teste me deixa receoso" para "este teste me deixa entusiasmado para fazer o meu melhor", isso ajuda a melhorar a sua performance.
Se entrar em pânico num teste, momentaneamente desvie sua atenção para a sua respiração. Relaxe sua barriga, coloque sua mão sobre ela e, lentamente, inspire profundamente. A sua mão deve mover-se para cima e todo o seu peito deve se expandir como um barril.
Sua mente pode te enganar, levando você a pensar que o que você fez está correto, Mesmo que não esteja. Isso significa que, quando for possível, você deve piscar, mudar sua atenção, e então checar novamente suas respostas, usando uma perspectiva mais abrangente, perguntando a si mesmo, isso realmente faz sentido?
E finalmente, lembre-se que não dormir o suficiente na noite anterior ao teste pode afetar negativamente qualquer outra preparação que você tenha feito.
Curso introdutório à Ciência da Computação com Python.
Para realizar este curso você não precisa ter nenhuma experiência anterior em programação.
Utiliza conceitos bem básicos fazendo com que você adquira conhecimentos novos a cada semana.
Além de conter vídeos e testes, você encontrará links de acesso ao livro interativo. Lá você encontrará conteúdo teórico e exercícios que poderão ser resolvidos dentro do próprio livro, com retorno imediato sobre a corretude da solução apresentada.
Vale a pena investir nas diversas fontes de aprendizado. Elas irão te ajudar a fixar o conteúdo estudado.
Os Programadores é um podcast onde o host Marcelo Pinheiro convida grandes nomes da programação tanto do brasil como do exterior para contar sobre suas jornadas desde o primeiro contato com a tecnologia, passando pelas suas formações, primeiras experiências profissionais, até chegarem ao momento atual de suas carreiras.
Entre seus convidados há um leque muito grande de gerações, personalidades, e caminhos trilhados. Independente de como e quando começaram o que percebemos é que não há um único caminho ou uma fórmula mágica para se tornar um programador e alinhado com essa premissa que o podcast tenta explorar a história de cada um dos convidados buscando encontrar direcionamentos para quem ainda está na fase inicial dentro da área.
O propósito de todo esse conteúdo criado é incentivar não só o pessoal que quer aprender a programar, mas também ajudar quem já está na área a expandir seus horizontes. Então fica aqui o convite a todos que se interessarem pelo podcasts e querem ter uma visão mais abrangente sobre o mundo da programação.
Neste desafio, o seu objetivo é adicionar o seu nome à lista de participantes do grupo no GitHub.
Escreva um programa para listar todos os números primos entre 1 e 10000, na linguagem de sua preferência.
The elves are running low on wrapping paper, and so they need to submit an order for more. They have a list of the dimensions (length l, width w, and height h) of each present, and only want to order exactly as much as they need.
Fortunately, every present is a box (a perfect right rectangular prism), which makes calculating the required wrapping paper for each gift a little easier: find the surface area of the box, which is 2lw + 2wh + 2hl. The elves also need a little extra paper for each present: the area of the smallest side.
For example:
A present with dimensions 2x3x4 requires 26 + 212 + 28 = 52 square feet of wrapping paper plus 6 square feet of slack, for a total of 58 square feet.
A present with dimensions 1x1x10 requires 21 + 210 + 210 = 42 square feet of wrapping paper plus 1 square foot of slack, for a total of 43 square feet.
All numbers in the elves' list are in feet. How many total square feet of wrapping paper should they order?
O Free Code Camp é uma organização beneficente. E sua missão é ajudar as pessoas a aprender a programar de graça.
Os seus conteúdos estão disponíveis em diversas linguagens, escolhi acompanhar o curso escolhido em inglês para treinar e me acostumar com o idioma.
Entre os diversos cursos disponíveis escolhi começar pelo Responsive Web Design. Segue a relação de meu progresso nele.
Um cartão de crédito (ou débito), é claro, é um cartão de plástico com o qual você pode pagar por bens e serviços. Impresso nesse cartão está um número que também é armazenado em um banco de dados em algum lugar, de modo que, quando o cartão for usado para comprar algo, o credor saiba a quem cobrar. Há muitas pessoas com cartões de crédito no mundo, então esses números são bem longos: American Express usa números de 15 dígitos, MasterCard usa números de 16 dígitos e Visa usa números de 13 e 16 dígitos. E esses são números decimais (0 a 9), não binários, o que significa, por exemplo, que a American Express poderia imprimir até 10 ^ 15 = 1.000.000.000.000.000 de cartões exclusivos! (Isso é, hum, um quatrilhão.)
Na verdade, isso é um pouco exagerado, porque os números de cartão de crédito têm alguma estrutura. Todos os números American Express começam com 34 ou 37; a maioria dos números do MasterCard começa com 51, 52, 53, 54 ou 55 (eles também têm alguns outros números iniciais potenciais com os quais não nos preocupamos neste problema); e todos os números Visa começam com 4. Mas os números de cartão de crédito também têm um “checksum” embutido, uma relação matemática entre pelo menos um número e outros. Essa soma de verificação permite que os computadores (ou humanos que gostam de matemática) detectem erros de digitação (por exemplo, transposições), se não números fraudulentos, sem ter que consultar um banco de dados, que pode ser lento. É claro que um matemático desonesto certamente poderia criar um número falso que, no entanto, respeite a restrição matemática, portanto, uma pesquisa no banco de dados ainda é necessária para verificações mais rigorosas.
Algoritmo de Luhn
Então, qual é a fórmula secreta? Bem, a maioria dos cartões usa um algoritmo inventado por Hans Peter Luhn, da IBM. De acordo com o algoritmo de Luhn, você pode determinar se um número de cartão de crédito é (sintaticamente) válido da seguinte maneira:
Multiplique cada segundo digito por 2, começando com o penúltimo dígito do número e, em seguida, some os dígitos desses produtos.
Adicione essa soma à soma dos dígitos que não foram multiplicados por 2.
Se o último dígito do total for 0 (ou, mais formalmente, se o módulo total 10 for congruente com 0), o número é válido!
Isso é meio confuso, então vamos tentar um exemplo com o cartão Visa do David: 4003600000000014.
1- Para fins de discussão, vamos primeiro sublinhar todos os outros dígitos, começando com o penúltimo dígito do número:
4003600000000014
Ok, vamos multiplicar cada um dos dígitos sublinhados por 2:
1 • 2 + 0 • 2 + 0 • 2 + 0 • 2 + 0 • 2 + 6 • 2 + 0 • 2 + 4 • 2
Isso nos dá:
2 + 0 + 0 + 0 + 0 + 12 + 0 + 8
Agora vamos adicionar os dígitos desses produtos (ou seja, não os próprios produtos):
2 + 0 + 0 + 0 + 0 + 1 + 2 + 0 + 8 = 13
2- Agora vamos adicionar essa soma (13) à soma dos dígitos que não foram multiplicados por 2 (começando do final):
13 + 4 + 0 + 0 + 0 + 0 + 0 + 3 + 0 = 20
3- Sim, o último dígito dessa soma (20) é 0, então o cartão de David é legítimo!
Portanto, validar números de cartão de crédito não é difícil, mas se torna um pouco tedioso manualmente. Vamos escrever um programa.
Segue uma lista de cartões para teste:
Bandeira | Número do cartão | Validade | CVV |
---|---|---|---|
Mastercard | 5555 6666 7777 8884 | 12/2022 | 123 |
Mastercard | 5226 8187 4817 8086 | 05/2024 | 305 |
Mastercard | 5446 9804 5390 8711 | 01/2024 | 850 |
Mastercard | 5435 3761 4337 8337 | 11/2022 | 643 |
Mastercard | 5550 3210 6986 5882 | 07/2023 | 874 |
VISA | 4024 0071 3701 5284 | 05/2024 | 290 |
VISA | 4929 0733 6921 7663 | 05/2024 | 699 |
VISA | 4978 6901 8142 3938 | 09/2023 | 509 |
VISA | 4929 5979 9238 9366 | 11/2023 | 781 |
VISA | 4556 7908 2671 7643 | 03/2024 | 234 |
AMEX | 3755 277750 50619 | 02/2023 | 7411 |
AMEX | 3711 798367 79945 | 03/2024 | 6487 |
AMEX | 3451 457122 28193 | 01/2024 | 3997 |
AMEX | 3439 572558 49363 | 03/2021 | 5963 |
AMEX | 3719 542115 28459 | 01/2024 | 5099 |
C++ é uma das linguagens mais usadas no mundo, considero que todo programador deve saber usar C++. É uma linguagem poderosa, rápida e empregada em muitos sistemas, além de ser a linguagem de maior emprego em cursos superiores da área de informática.
Neste curso iremos aprender desde os conceitos básicos de programação, até conceitos de programação orientada a objetos, trabalhar com arquivos, bibliotecas e atualizações da linguagem como C++11.
Se você quer aprender programação, quer se tornar um programador de qualidade você precisa aprender C++ e este é curso certo.
Ratiorg got statues of different sizes as a present from CodeMaster for his birthday, each statue having an non-negative integer size. Since he likes to make things perfect, he wants to arrange them from smallest to largest so that each statue will be bigger than the previous one exactly by 1. He may need some additional statues to be able to accomplish that. Help him figure out the minimum number of additional statues needed.
Example
For statues = [6, 2, 3, 8], the output should be
solution(statues) = 3.
Ratiorg needs statues of sizes 4, 5 and 7.
Os Programadores é um grupo sem fins lucrativos com o objetivo de disseminar conhecimento em várias áreas da ciência da computação. Também disponibilizam alguns desafios que lhe auxiliam a se desenvolver como um programador, abaixo segue uma relação com minhas soluções nos desafios.
Mundo 1-1. Perto do final do Mundo 1-1 no Super Mario Brothers da Nintendo, Mario deve ascender a pirâmide de blocos alinhada à direita, como demonstrado abaixo.
Vamos recriar essa pirâmide em C, ainda que em texto, usando hashes ( # ) para tijolos, como visto a seguir. Cada hash é um pouco mais alto do que largo, então a pirâmide em si também é mais alta do que larga.
#
##
###
####
#####
######
O programa que escreveremos se chamará mario. E vamos permitir que o usuário decida qual deve ser a altura da pirâmide, primeiro solicitando um número inteiro positivo entre, digamos, 1 e 8, inclusive. Se o usuário não inserir, de fato, um número inteiro positivo entre 1 e 8, quando solicitado, o programa deve solicitar novamente ao usuário até que ele coopere:
Segue meu resultado na plataforma Replit, para executar a solução basta clicar em Run no topo da pagina.
--- Part Two ---
The next year, to speed up the process, Santa creates a robot version of himself, Robo-Santa, to deliver presents with him.
Santa and Robo-Santa start at the same location (delivering two presents to the same starting house), then take turns moving based on instructions from the elf, who is eggnoggedly reading from the same script as the previous year.
This year, how many houses receive at least one present?
For example:
^v delivers presents to 3 houses, because Santa goes north, and then Robo-Santa goes south.
^>v< now delivers presents to 3 houses, and Santa and Robo-Santa end up back where they started.
^v^v^v^v^v now delivers presents to 11 houses, with Santa going one direction and Robo-Santa going the other.
Curso que ensina estratégias eficazes de aprendizado.
Baseado em pesquisas recentes da neurociência e da psicologia cognitiva.
Ensina como o cérebro funciona durante o processo de aprendizagem.
Aborda técnicas de memorização e retenção de informações.
Aplica técnicas de aprendizado ativo e espaçado para melhorar a aprendizagem.
Combate a procrastinação e ensina gerenciamento de tempo de estudo.
Conteúdo apresentado em vídeos, leituras e exercícios práticos.
Adequado para estudantes de todas as idades e níveis de educação.
Capacita os alunos com habilidades de aprendizado eficientes e duradouras.
Ajuda a enfrentar com sucesso os desafios de aprender assuntos difíceis.
Codesignal é um conjunto de desafios de programação onde você pode se preparar para entrevistas e treinar a resolução de problemas.
Os desafios de programação cobrem um grande conjunto de habilidades e niveis de complexidade e pode ser resolvido usando qualquer linguagem de programação.
Aqui irei compartilhar meu avanço e minhas soluções.
--- Day 4: The Ideal Stocking Stuffer ---
Santa needs help mining some AdventCoins (very similar to bitcoins) to use as gifts for all the economically forward-thinking little girls and boys.
To do this, he needs to find MD5 hashes which, in hexadecimal, start with at least five zeroes. The input to the MD5 hash is some secret key (your puzzle input, given below) followed by a number in decimal. To mine AdventCoins, you must find Santa the lowest positive number (no leading zeroes: 1, 2, 3, ...) that produces such a hash.
For example:
If your secret key is abcdef, the answer is 609043, because the MD5 hash of abcdef609043 starts with five zeroes (000001dbbfa...), and it is the lowest such number to do so.
If your secret key is pqrstuv, the lowest number it combines with to make an MD5 hash starting with five zeroes is 1048970; that is, the MD5 hash of pqrstuv1048970 looks like 000006136ef....
Your puzzle input is bgvyzdsv.
Write a function that returns the sum of two numbers.
A base 2 é uma das bases mais usadas em computação. Números nessa base são representados pela equação 2^n. Exemplo:
2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
E assim por diante.
Este desafio consiste em:
Ler um arquivo de números (abaixo), contendo um número por linha.
Se o número for uma potência de 2, imprimir o número seguido de true e o expoente ao qual se deve elevar 2 para obter o número.
Se o número não for uma potência de 2, imprimir o número seguido de false.
Considere a lista de números:
1
140
128
137
65535
65536
17179869184
A saída deverá ser:
1 true 0
140 false
128 true 7
137 false
65535 false
65536 true 16
17179869184 true 34
A soulão leva em consideração o arquivo disponibilizado contendo o seguinte conteúdo.
0
1
12
14
16
127
128
4096
281454976710656
18446744073709551616
124500856567997039162129486884668395826812296992228481815365968142027128693051035028556205264925665657626403178505809645412871055386757088573364745122357043975109693592036962311310957686231579579642781020624154356286086897778238385399858317893098189532376278484559500702772623150362802638348099921178582788310878154859755967372286990903647058081576759032347615874174439483053568007465887053932454054557542271600400386609821070961296169053055271224915561091922407311082889683446299274961215323332902442010587545631362959076396586324429133634232055167395681288399516683383956617143869197417777155025314769088291480186439336051135732033936004087935401036990026744627678180016656996927023729705272326460079719945226356402013780463595287258622978986906959003423961532930270921061548338446592277866576070108835043557312878258394587753736138596887993298504695766978337288786524018635728722878890320915557899639681702363838688960875075203948108011233803260538752766069558125766188271033739566336965497637006595709051901086265523344299594053086414269586271143861797076055019661581144918539466895753979973903491128787296817908097735620084164364020702558529749642122149622728045843807062294064940349054684732167486361991196132267515707392
2314185985457235618750807518439255791483119493422352165787546559868302409470291988575173224557300164810106522966939501900008715682938541479296551906945268505494352328324962697410609146185837888624615394715751608361830174152668676685019554381084438256327940596950085415756850584051133638909936449121476155111848437638289434513051098058148766039925664598040553910799633187829038108494673696217223889194847860141141616167272532283281917137315913651635713035451870996621006105657734634768397695199754209427149410156216464802998980146041068468812087800447307275314433204031772094762825683433916947174313944195242784290715608624920851346534036216803377455400331531976914555740925572268183555577086251039249862581450558394624212793134260404983611153808582038013855988240023623859288161549661250430035972851088046256534797262027839281833388856556590408681122440101603282236776025617384765397482364985048946716514383069164198492238687724894380008654689066545045000046462078654842525755231974092149407623683192306000065828548331962708855323362755245047019609402663165433437326257876866296807248324323257704871990374670145427029442813542365005738236992444119908554245927169807751472052293057527879230557530783067631846347466225869034173948838659508877336299382631495863563272151952427776281308917845597700628071691023661487252765739046292860016677411879686640010212118278745955285294417841329620599337984110101243656456776913453090422463741362827898131829598115227203371863118321606346869377387503848146385587272243216384
60702011246939035062687380680906305837142319313464061388891140591593089538654121918830296653594623864246878483558330608438096796425782639375183382556074597215979408709784194672508413305216789409418100705664952663177612750510231572483130375153310339598506419035697574297728380258159928663455935627476012474222471027006872324831776009258180124697674047980941466699719946879732254830155916883808410253233743521813647055645507911355426225890745048148394319807823782001447859163577867785403819865804774267099818223711406345304313381560740976869916334378275052323146373096895131451880333513652825520707625534451879660923061724541177563964007723527941501080847411992425892654176631560130935566054287853139921832999739575043504907886228120383532500247233797674257525565499680389206269196240162155222100997689730319240285979944612467169767002825773294385516861479034914493741586905100660928039019764360954203652104488749412449891358785187346020029510226399683789949132645976073131594003194105035215945839472654844346337939567198901204475690701015901568512309041487764987297548864591049904456364235670421246498946015626760720374204265834234994709030823084740371789734652763905931230636080463771021481812101955450955920262905736116606247837842309906432
Santa was hoping for a white Christmas, but his weather machine's "snow" function is powered by stars, and he's fresh out! To save Christmas, he needs you to collect fifty stars by December 25th.
Collect stars by helping Santa solve puzzles. Two puzzles will be made available on each day in the Advent calendar; the second puzzle is unlocked when you complete the first. Each puzzle grants one star. Good luck!
Here's an easy puzzle to warm you up.
Santa is trying to deliver presents in a large apartment building, but he can't find the right floor - the directions he got are a little confusing. He starts on the ground floor (floor 0) and then follows the instructions one character at a time.
An opening parenthesis, (, means he should go up one floor, and a closing parenthesis, ), means he should go down one floor.
The apartment building is very tall, and the basement is very deep; he will never find the top or bottom floors.
For example:
(()) and ()() both result in floor 0.
((( and (()(()( both result in floor 3.
))((((( also results in floor 3.
()) and ))( both result in floor -1 (the first basement level).
))) and )())()) both result in floor -3.
To what floor do the instructions take Santa?
The elves are also running low on ribbon. Ribbon is all the same width, so they only have to worry about the length they need to order, which they would again like to be exact.
The ribbon required to wrap a present is the shortest distance around its sides, or the smallest perimeter of any one face. Each present also requires a bow made out of ribbon as well; the feet of ribbon required for the perfect bow is equal to the cubic feet of volume of the present. Don't ask how they tie the bow, though; they'll never tell.
For example:
A present with dimensions 2x3x4 requires 2+2+3+3 = 10 feet of ribbon to wrap the present plus 234 = 24 feet of ribbon for the bow, for a total of 34 feet.
A present with dimensions 1x1x10 requires 1+1+1+1 = 4 feet of ribbon to wrap the present plus 1110 = 10 feet of ribbon for the bow, for a total of 14 feet.
How many total feet of ribbon should they order?
Um palíndromo é uma palavra ou expressão que pode ser lida da esquerda para a direita ou da direita para a esquerda mantendo o mesmo significado. Um exemplo de palíndromo é a palavra “reviver”.
Neste desafio, a idéia é imprimir todos os números palindrômicos entre dois outros números. Tal como as palavras, os números palindrômicos mantém o mesmo valor se lidos de trás para a frente.
Exemplo 1: Dado o número inicial 1 e número final 20, o resultado seria: 1, 2, 3, 4, 5, 6, 7, 8, 9, 11.
Exemplo 2: Dado o numero inicial 3000 e número final 3010, o resultado seria: 3003.
Para o desafio, assuma:
Apenas inteiros positivos podem ser usados como limites.
Números de um algarismo são palíndromos por definição.
Máximo número: (1 << 64) - 1 (máximo unsigned int de 64 bits).
Bônus: Se o desafio parece fácil demais, implemente um novo tipo de dados para calcular pra qualquer número com precisão arbitrária (limite: 100000 algarismos por número).
O uso de bibliotecas matemáticas de precisão arbitrária não será considerado como uma solução válida.
Given two cells on the standard chess board, determine whether they have the same color or not.
Example
For cell1 = "A1" and cell2 = "C3", the output should be
solution(cell1, cell2) = true.
For cell1 = "A1" and cell2 = "H3", the output should be
solution(cell1, cell2) = false.
Given an array of integers, find the pair of adjacent elements that has the largest product and return that product.
Example
For inputArray = [3, 6, -2, -5, 7, 3], the output should be
solution(inputArray) = 21.
7 and 3 produce the largest product.
Expressões numéricas são sequências de duas ou mais operações que devem ser realizadas respeitando determinada ordem. Para encontrar sempre um mesmo valor quando calculamos uma expressão numérica, usamos regras que definem a ordem que as operações serão feitas.
12 + 3 * 5 = 27
2 * ( 5 - 1 ) = 8
2^2 + 8 / 2 = 8
2^( 3 - 1) = 4
E assim por diante.
Este desafio consiste em:
Ler um arquivo de números (abaixo), contendo uma expressão por linha.
Imprimir o resultado numérico da expressão.
Se o programa encontrar um divisão por zero deverá imprimir ERR DIVBYZERO.
Se o programa encontrar um erro de sintaxe na expressão deverá imprimir ERR SYNTAX.
Não deverão ser usadas bibliotecas externas para trabalho com expressões numéricas.
Considere a lista de números:
1 + 3
2 - 3 * 2
2 ^ 3 / 4
0 * 5 * (4 + 1)
5 + 5 / 0
5 + + 1
5 + ( 465 + 1
A saída deverá ser:
4
-4
2
0
ERR DIVBYZERO
ERR SYNTAX
ERR SYNTAX
Essa solução leva em consideração o arquivo fornecido com o seguinte conteúdo:
1 + 0 + 25 - 3
1+1*5-1
1 + 4 / 2 ^2 - 1
1 + 3 * 6 / 2 + 0
0 / 1 + 1 / 0
1 * (5 + 10) / 3
((5-1) * 2)^2
(2 - 1) * 2^3
4 / (54 - (9 * 6))
54 * * 54 - 1
((79 - 12) * (5 + (2 - 1))
266 + 54 * 4 - ( 41 + 2 ) * 10 / 5 - 7 ^ 3 - 1 + 1 * 0 - (( 45 / 5 * 3 - 1) * 2)
A Linguagem C++ é a linguagem de programação mais influente do mundo. Seus conceitos são amplamente empregados na grande parte das linguagens quem surgiram após seu lançamento e a sua adoção, continua a ser grande, para a construção de software para as mais diversas áreas do conhecimento humano.
Dentre os objetivos principais desse curso, está o estudo de algumas bibliotecas e as técnicas envolvidas para a criação e desenvolvimento de extensões para outros aplicativos. Explorando o desenvolvimento de extensões para Python, PHP, e desenvolvimento nativo para Android e etc.
A produção de jogos em C++ também será amplamente estudada, bem como suas bibliotecas e ferramentas que utilizamos diariamente quando estamos desenvolvendo tanto um jogo para desktop, como também, um game para iOS, Android ou mesmo com a biblioteca Canvas do HTML5.
Mundo 1-1. No início de World 1-1 em Super Mario Brothers, da Nintendo, Mario deve pular pirâmides de blocos adjacentes, conforme mostrado abaixo.
Vamos recriar essas pirâmides em C, ainda que em texto, usando hashes ( # ) para tijolos, a la a seguir. Cada hash é um pouco mais alto do que largo, então as pirâmides em si também são mais altas do que largas.
# #
## ##
### ###
#### ####
O programa que escreveremos se chamará mario. E vamos permitir que o usuário decida a altura das pirâmides, primeiro solicitando um número inteiro positivo entre, digamos, 1 e 8, inclusive.
Escreva um programa que leia um arquivo texto contendo uma lista de três numeros por linha: base_entrada, base_saida e numero_entrada e imprima o número fornecido (já na base de entrada) convertido para a base de saída.
O formato exato da entrada é:
base_entrada base_saida numero_entrada
10 16 1500
36 10 GOODBYE
36 16 HELLOWORLD
10 2 32452867
2 10 1234
Exemplo de saida para a entrada acima:
5DC
36320638406
647B8839EB1B1
1111011110011000100000011
???
Considerações importantes:
O programa deverá converter de qualquer base entre 2 e 62 para qualquer outra entre 2 e 62.
Imprima ??? caso um dos seguintes erros tenha sido detectado:
Base inválida (tanto a base de entrada quanto a de saída devem estar entre 2 e 62, inclusive).
Número negativo.
Número muito grande (ver considerações sobre limite abaixo).
Número inválido para a base especificada.
Para conversões acima de bases acima de 10, use o seguinte conjunto de caracteres: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz (z = 61). Observe que com isso, todas as conversões para hexadecimal usam letras maísculas.
O programa deve lidar com numeros grandes. O limite superior deverá ser o equivalente a ‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’, em base 62.
Escreva o algoritmo. Não use as rotinas de conversão da sua linguagem preferida, se ela já possuir.
solução leva em consideração o arquivo teste fornecido:
2 3 0
11 11 99
10 2 100
10 16 -99
17 10 2018ABDG
36 16 OHYEAHTHISISBIG
62 16 OHYEAHTHISISBIG
35 2 OHYEZZZZ
0 2 100
2 0 100
62 2 zooooooooooooooooooooooooooom
62 16 zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
35 3 TERNARIO
62 16 1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
33 8 OCTAL
10 62 27805568394691458661136458099556259144705
16 62 128F36A9A4BD3E9D666B6340C7EA3
5 62 10212030103214130013104
O problema do cavalo, ou passeio do cavalo, é um problema matemático envolvendo o movimento da peça do cavalo no tabuleiro de xadrez. O cavalo é colocado no tabuleiro vazio e, seguindo as regras do jogo, precisa passar por todas as casas exatamente uma vez em movimentos consecutivos.
Criar um programa que encontre uma solução para o passeio do cavalo.
O programa deve receber, via linha de comando, uma casa em notação algébrica de xadrez que será a posição inicial do cavalo.
O programa deverá retornar uma seguência de posições (uma por linha) em notação algébrica de xadrez indicando o caminho percorrido pelo cavalo a fim de preencher todo o tabuleiro sem faltar nenhuma casa e sem repetir nenhuma.
Exemplo
Considere a seguinte entrada:
./cavalo a1
A saída deverá ser:
./cavalo a1
a1
c2
e1
g2
.
.
.
Below we will define an n-interesting polygon. Your task is to find the area of a polygon for a given n.
A 1-interesting polygon is just a square with a side of length 1. An n-interesting polygon is obtained by taking the n - 1-interesting polygon and appending 1-interesting polygons to its rim, side by side. You can see the 1-, 2-, 3- and 4-interesting polygons in the picture below.
Example
For n = 2, the output should be
solution(n) = 5;
For n = 3, the output should be
solution(n) = 13.
Now, given the same instructions, find the position of the first character that causes him to enter the basement (floor -1). The first character in the instructions has position 1, the second character has position 2, and so on.
For example:
) causes him to enter the basement at character position 1.
()()) causes him to enter the basement at character position 5.
What is the position of the character that causes Santa to first enter the basement?
O Curso de Ciência da Computação oferecido pela Universidade Brasileira Livre é uma educação completa em Ciência da Computação usando materiais on-line e em Português do Brasil.
Os cursos são gratuitos, possuem método pedagógico e estão de acordo com o que se espera do Currículo de Ciências da Computação.
Abaixo estarei relacionando todo o conteúdo proposto pela iniciativa e meu progresso em cada tópico.
Given the string, check if it is a palindrome.
Santa is delivering presents to an infinite two-dimensional grid of houses.
He begins by delivering a present to the house at his starting location, and then an elf at the North Pole calls him via radio and tells him where to move next. Moves are always exactly one house to the north (^), south (v), east (>), or west (<). After each move, he delivers another present to the house at his new location.
However, the elf back at the north pole has had a little too much eggnog, and so his directions are a little off, and Santa ends up visiting some houses more than once. How many houses receive at least one present?
For example:
delivers presents to 2 houses: one at the starting location, and one to the east.
^>v< delivers presents to 4 houses in a square, including twice to the house at his starting/ending location.
^v^v^v^v^v delivers a bunch of presents to some very lucky children at only 2 houses.
Técnicas de estudo, organização e aprendizagem
Estude o máximo que puder, de acordo com sua capacidade.
A velocidade de aprendizado varia de pessoa para pessoa, dependendo de seu contexto passado.
A forma de estudo é mais importante do que a quantidade de tempo dedicada.
Descubra seu limite de estudo sem distrações.
Compreenda seu estilo de aprendizado.
Evite atalhos ou "hacks" de aprendizado.
Construa uma base sólida de conhecimento.
Mantenha consistência no estudo ao longo dos anos.
Experimente ao aprender, teste ideias não abordadas.
Analise o que funciona e o que não funciona.
Resolva os problemas você mesmo, não consulte soluções de outros.
Se necessário, busque ajuda para compreender.
Entenda os conceitos antes de começar a codificar.
Resolver o problema no papel antes de ir para o código.
Implemente o que já sabe em diferentes linguagens.
A melhor maneira de enternder sobre arquiteturas e padrões de projetos é fazendo um de ponta a ponta.
Explore e faça conexões.
Experimentação é essencial.
Conecte conhecimentos adquiridos.
Estabeleça objetivos claros.
Faça pausas para desconectar.
Respire profundamente e medite.
Cuide da sua saúde física com exercícios.
Assuma responsabilidade pelo seu aprendizado.
Busque competências fora da sala de aula.
Procure orientação de pessoas experientes, de por onde seguir após de finalizar um estudo.
Não ignore conceitos fundamentais. Que são a base para todo o resto.
Defina objetivos claros.
Mapeie os conhecimentos necessários.
Faça autoavaliação regular.
Gerencie seu tempo diário e prazos.
Conclua cursos e ensine para reforçar o aprendizado.
Vá além das expectativas.
Demonstre determinação, iniciativa e criatividade.
Desenvolva ideias em projetos concretos.
Construa uma rede de contatos e ajude outros.
Elimine distrações e mantenha o foco.
Organize e planeje suas tarefas.
Alinhe suas atividades com seu propósito de vida.
Mantenha um registro das metas e compromissos.
Aproveite o poder da comunidade para enriquecer seu aprendizado.
Advent of Code é um conjunto anual de desafios de programação de computador com tema de Natal que seguem um calendário do Advento. Funciona desde 2015.
Os desafios de programação cobrem um grande conjunto de habilidades e niveis de complexidade e pode ser resolvido usando qualquer linguagem de programação.
O evento foi fundade e é mantido pelo Engenheiro de Software Eric Wastl
Aqui compartilharei meu avanço e minhas soluções somente de eventos passados.
Para evitar dar soluções enquanto acontece as competições.
Atualmente estou buscando aprender um pouco mais sobre a linguagem C++.
Por esse motivo minhas soluções seram todas em C++.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.