Lösen Sie AtCoder-Probleme Bootcamp für Anfänger (Medium 100) mit Python

Über den Inhalt dieses Artikels (Prämisse)

Dieser Artikel wurde von Anfängern von Wettkampfprofis verfasst, um ihre Studien aufzuzeichnen.

Die heutige Zusammenfassung (Schlussfolgerung)

  1. Initialisierung der zweidimensionalen Liste Beim Initialisieren einer zweidimensionalen Liste Nicht [[Keine] * n] * m Verwenden Sie [[Keine] * n für x im Bereich (m)] (ABC057 B Checkpoints)
  2. Das Produkt von Sets Einfach zu bekommen mit <set> & <set> (ABC098 B Cut and Count)
  3. Gruppieren nach ist bequem Wenn Sie "groupby ()" verwenden, werden jedes Element und sein Element Einfache fortlaufende Nummern zu bekommen (ABC072 C Together)
  4. Listenindex Holen Sie sich mit <list> .index (<num>) (ABC057 B Checkpoints)
  5. Ausgabe auflisten Durch Hinzufügen von "" am Anfang der Liste wie " " Sie können die Elemente der Liste erweitern und einzeln als Argumente übergeben (Wird verwendet, wenn Daten ausgegeben werden, die nicht durch Kommas getrennt sind.) (ABC107 B Grid Compression)
  6. Translokation einer zweidimensionalen Liste Verwenden Sie zip (* <list>), um eine zweidimensionale Liste zu transponieren Da die Rückgabe von zip jedoch ein Iterator ist, schreiben Sie sie in Einschlussnotation wie ↓ [list(x) for x in zip(*<list>)]
    (Zip ist eine Funktion, die mehrere iterierbare Objekte als Argumente verwendet und die Elemente zusammen abruft.) (ABC107 B Grid Compression)

Problem heute gelöst (Hauptthema)

  1. ABC098 B Cut and Count
  2. ABC064 C Colorful Leaderboard
  3. ABC060 B Choose Integers
  4. ABC072 C Together
  5. ABC057 B Checkpoints
  6. [ABC107 B Grid Compression](# abc107-b-Grid Compression) * Memorandum verfügbar
  7. ABC086 C Traveling
  8. [ABC154 D Würfel in Reihe](# abc154-d-Würfel in Reihe) * Memorandum verfügbar

ABC098 B Cut and Count

# ABC098
# B
# Cut and Count

n = int(input())
s = input()
ans = 0
for i in range(n):
    s_f = set(s[:i])
    s_b = set(s[i:])
    _l =len(s_f & s_b)
    if ans < _l:
        ans = _l

print(ans)

ABC064 C Colorful Leaderboard

# ABC064
# C
# Colorful Leaderboard

n = int(input())
a_list = list(map(int, input().split()))

color_list = [0]*8
over = 0
for i in range(n):
    _ = a_list[i] // 400
    if _ < 8:
        color_list[_] = 1
    else:
        over += 1

_tmp = sum(color_list)
if _tmp == 0:
    print("1 %d"%over)
else:
    print("%d %d"%(_tmp, _tmp+over))

ABC060 B Choose Integers

# ABC060
# B
# Choose Integers

a, b, c = map(int, input().split())
n = b

flag = False
for i in range(n):
    if (i * a) % b == c:
        flag = True
        break

if flag:
    print("YES")
else:
    print("NO")

ABC072 C Together

# ABC072
# C
# Together

import itertools

n = int(input())
a = [int(i) for i in input().split()]

a.sort()
gr = itertools.groupby(a)
hoge_list = [0]*100001
ans = 0

for key, group in gr:
    hoge_list[key] = len(list(group))

for i in range(1,100000,1):
    _tmp = hoge_list[i-1] + hoge_list[i] + hoge_list[i+1]
    if ans < _tmp:
        ans = _tmp

print(ans)

ABC057 B Checkpoints

# ABC057
# B
# Checkpoints

n, m = map(int, input().split())
ax = [None]*n
by = [None]*n
cx = [None]*m
dy = [None]*m

d_list = [[None]*m for i in range(n)]

for i in range(n):
    ax[i],by[i] = map(int, input().split())
for i in range(m):
    cx[i],dy[i] = map(int, input().split())

for i in range(n):
    for j in range(m):
        d_list[i][j] = abs(ax[i]-cx[j]) + abs(by[i]-dy[j])
        
for i in range(n):
    print(d_list[i].index(min(d_list[i]))+1)

ABC107 B Grid Compression

Memorandum

Ich habe gelernt, wie wichtig Sets sind. <set> .issuperset (<set>) (übergeordneter Satz) <set> .issubset (<set>) (Teilmenge) Mit diesen beiden Elementen können Sie Elemente leicht vergleichen.

# ABC107
# B
# Grid Compression

h, w = map(int, input().split())
a_list = []
for i in range(h):
    _tmp = input()
    if set(_tmp).issuperset({"#"}):
        a_list.append(_tmp)

a_list_T = [list(x) for x in zip(*a_list)]
tmp_list = []

for i in range(w):
    _tmp = a_list_T[i]
    if set(_tmp).issuperset({"#"}):
        tmp_list.append(_tmp)
        
ans = [list(x) for x in zip(*tmp_list)]

for _l in ans:
    print(*_l,sep="")

ABC086 C Traveling

# ABC086 C Traveling

n = int(input())
t, x, y = 0, 0, 0
flag = True

for i in range(n):
    _t,_x,_y = map(int, input().split())
    _d = abs(x - _x) + abs(y - _y)
    _dt = abs(t - _t)
    if _d > _dt or ((_d - _dt)%2) == 1:
        flag = False
    t,x,y = _t,_x,_y

if flag:
    print("Yes")
else:
    print("No")

ABC154 D Dice in Line

Memorandum

Als ich den maximal erwarteten Wert erhielt, versuchte ich zunächst, "sum (e_list [i: i + k])" zu verwenden, aber da es zu TLE wurde, wechselte ich zu der Methode, die kumulative Summe der itertools zu verwenden.

# ABC154 D Dice in Line

import itertools

n, k = map(int, input().split())
p_list = [int(x) for x in input().split()]
e_list = [None]*n

for i in range(n):
    e_list[i] = (1 + p_list[i])/2

cumsum = list(itertools.accumulate(e_list))
ans = cumsum[k-1]

for i in range(k,n):
    _ = cumsum[i] - cumsum[i-k]
    if ans < _:
        ans = _

print(ans)

Recommended Posts

Lösen Sie AtCoder-Probleme Bootcamp für Anfänger (Medium 100) mit Python
Beheben von AtCoder-Problemen Empfehlung mit Python (20200517-0523)
Löse AtCoder 167 mit Python
Löse AtCoder ABC166 mit Python
INSERT in MySQL mit Python [Für Anfänger]
[Python] Löse 10 vergangene Eliteprobleme von Atcoder
[AtCoder] Löse ABC1 ~ 100 Ein Problem mit Python
Löse AtCoder ABC168 mit Python (A ~ D)
WebApi-Erstellung mit Python (CRUD-Erstellung) Für Anfänger
Atcoder-Standardeingabesatz für Anfänger (Python)
[Für Anfänger] Versuchen Sie Web Scraping mit Python
[AtCoder] Lösen Sie ein Problem von ABC101 ~ 169 mit Python
Kausales Denken und kausale Suche von Python (für Anfänger)
~ Tipps für Python-Anfänger mit Liebe von Pythonista ① ~
Löse "AtCoder Version! Arimoto (Anfänger)" mit Python!
[Einführung für Anfänger] Umgang mit MySQL mit Python
Python Lehrbuch für Anfänger
Löse Mathe mit Python
Löse POJ 2386 mit Python
OpenCV für Python-Anfänger
[Für Anfänger von Wettkampfprofis] Ich habe versucht, 40 AOJ "ITP I" -Fragen mit Python zu lösen
[Python] Löse Gleichungen mit Sympy
Hellblau mit AtCoder @Python
Lernablauf für Python-Anfänger
Lösen mit Ruby und Python AtCoder ABC133 D Kumulative Summe
Python3-Umgebungskonstruktion (für Anfänger)
[AtCoder Erklärung] Kontrollieren Sie ABC158 A, B, C Probleme mit Python!
Python #Funktion 2 für Super-Anfänger
Grundlegende Python-Grammatik für Anfänger
100 Pandas klopfen für Python-Anfänger
Python #Funktion 1 für Super-Anfänger
Lösen Sie Optimierungsprobleme mit Python
Python #Liste für Super-Anfänger
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
[AtCoder Erklärung] Kontrollieren Sie ABC164 A, B, C Probleme mit Python!
[AtCoder Erklärung] Kontrollieren Sie ABC168 A, B, C Probleme mit Python!
Ich habe versucht, die Anfängerausgabe des Ameisenbuchs mit Python zu lösen
AtCoder ARC104 B Kumulative Summe in Ruby, Python und Java gelöst
So schreiben Sie offline in Echtzeit Lösen von F01-Problemen mit Python
Erstellen Sie ein USB-Boot-Ubuntu mit einer Python-Umgebung für die Datenanalyse
Solver> Link> Lösen Sie Excel Solver mit Python
Löse ABC163 A ~ C mit Python
Python-Übungen für Anfänger # 2 [für Anweisung / while-Anweisung]
Python für Super-Anfänger Super-Anfänger Python # Wörterbuch Typ 1
Löse ABC166 A ~ D mit Python
Löse den Atcoder ABC169 A-D mit Python
Erste Schritte mit Python für PHPer-Klassen
Python #index für Super-Anfänger, Slices
Löse ABC168 A ~ C mit Python
<Für Anfänger> Python-Bibliothek <Für maschinelles Lernen>
Python #len Funktion für Super-Anfänger
AtCoder ABC 114 C-755 mit Python3 gelöst
Erstelltes AtCoder-Testtool für Python
Löse ABC162 A ~ C mit Python
Löse ABC167 A ~ C mit Python
Web Scraping für Anfänger in Python (1)
# 2 Python-Anfänger fordern AtCoder heraus! ABC085C --Otoshidama
Löse ABC158 A ~ C mit Python
Führen Sie unittest in Python aus (für Anfänger)