Daily AtCoder # 43 en Python

introduction

Dernière fois

#43 Problème

** Pensées ** Je n'ai pas pu le résoudre pendant le concours. Je pense que ce problème est difficile car je ne peux pas écrire le code pour générer les numéros d'exécution. Je ne pouvais pas non plus écrire. Selon le commentaire, il semble prêter attention au reste divisé par 10 et 9. Lorsque le reste de la division de $ x $ par 10 est égal à 0, le chiffre des unités devient 0 et le nombre d'exécutions pouvant être générées diminue. De même, lorsque le reste de la division de $ x $ par 9 est égal à 0, le nombre d'exécutions pouvant être générées diminue. Parce que, lorsque les uns placent est 0, il n'y a que 0 et 1 numéros d'exécution tels que la différence entre les nombres adjacents est 1. Même lorsqu'il est 9, il n'y en a que 8 et 9. Si vous organisez le type de numéro d'exécution généré pour chacun,

x != 0 mod(10) → 10x+(x%10)-1
x != 9 mod(10) → 10x+(x%10)+1 

Ce sera. Si vous implémentez ceci

from collections import deque

k = int(input())

lun = deque([])
for i in range(1,10):
    lun.append(i)

for i in range(k):
    x = lun.popleft()
    if x % 10 != 0:
        lun.append(10*x+(x%10)-1)
    lun.append(10*x+x%10)
    if x % 10 != 9:
        lun.append(10*x+(x%10)+1)
print(x)

J'utilise deque car je n'accède qu'aux deux extrémités des données

Résumé

Je voulais le résoudre en production. Je ne suis pas doué pour les calculs en utilisant le reste, je vais donc m'entraîner autour du problème des nombres entiers. à plus.

Recommended Posts

AtCoder # 2 tous les jours avec Python
Daily AtCoder # 6 en Python
Daily AtCoder # 18 en Python
Daily AtCoder # 53 en Python
Daily AtCoder # 33 en Python
AtCoder # 24 tous les jours avec Python
Daily AtCoder # 37 en Python
AtCoder # 8 tous les jours avec Python
Daily AtCoder # 42 en Python
AtCoder # 21 quotidien avec Python
Daily AtCoder # 17 avec Python
Daily AtCoder # 38 en Python
Daily AtCoder # 54 en Python
Daily AtCoder # 11 en Python
Daily AtCoder # 15 en Python
Daily AtCoder # 47 avec Python
Daily AtCoder # 13 en Python
AtCoder # 45 quotidien avec Python
AtCoder # 30 tous les jours en Python
AtCoder # 40 quotidien avec Python
AtCoder # 10 quotidien avec Python
AtCoder # 5 tous les jours avec Python
Daily AtCoder # 28 en Python
AtCoder # 39 quotidien avec Python
Daily AtCoder # 20 en Python
Daily AtCoder # 19 en Python
Daily AtCoder # 52 en Python
Daily AtCoder # 3 en Python
Daily AtCoder # 14 avec Python
Daily AtCoder # 50 avec Python
Daily AtCoder # 26 avec Python
AtCoder quotidien # 4 avec Python
Daily AtCoder # 43 en Python
Daily AtCoder # 29 en Python
Tous les jours avec Python AtCoder # 22
Daily AtCoder # 49 en Python
Daily AtCoder # 27 en Python
AtCoder # 1 tous les jours avec Python
Daily AtCoder # 25 avec Python
Daily AtCoder # 16 en Python
Daily AtCoder # 12 en Python
Daily AtCoder # 48 en Python
Daily AtCoder # 23 en Python
Daily AtCoder # 34 en Python
AtCoder # 51 quotidien avec Python
Daily AtCoder # 31 en Python
Daily AtCoder # 46 en Python
AtCoder # 35 quotidien avec Python
AtCoder # 9 tous les jours avec Python
Daily AtCoder # 44 avec Python
Daily AtCoder # 41 en Python
Atcoder ABC164 A-C en Python
Note d'entrée Python dans AtCoder
Atcoder ABC167 A-D en Python
Atcoder ABC165 A-D en Python
Atcoder ABC166 A-E en Python
Atcoder ABC169 A-E en Python
AtCoder ABC177 A-D avec python
Résoudre Atcoder ABC169 A-D avec Python
[Python] Connaissances de base utilisées dans AtCoder
Quadtree en Python --2