[PYTHON] AtCoder Beginner Contest 053 Rückblick auf frühere Fragen

Zweite vergangene Frage

Benötigte Zeit

スクリーンショット 2020-01-08 15.05.48.png

Impressionen

Ich hatte keine Zeit, also wiederhole ich die einfachen Fragen der Vergangenheit.

Problem A

Ändern Sie die Ausgabe gemäß x.

answerA.py


x=int(input())
print("ABC" if x<1200 else "ARC")

B-Problem

Zählen Sie von vorne und von hinten.

answerB.py


s=input()
n=len(s)
a,b=0,0
for i in range(n):
    if s[i]=="A":
        a=i
        break
for i in range(n-1,-1,-1):
    if s[i]=="Z":
        b=i
        break
print(b-a+1)

Hier ist der überarbeitete Code. (Es ist eine Grundfunktion, aber ich erinnere mich nicht, dass es schlecht ist ...)

answerB_better.py


s = input()
#Suchen Sie von vorne nach dem Index und von hinten nach dem Index und geben Sie den ersten Index zurück
print(s.rindex('Z') - s.index('A') + 1)

C-Problem

Da Sie die Augen frei wählen können, ist es am besten, in der Reihenfolge 6 → 5 zu wählen. Wenn Sie über den Quotienten geteilt durch 11 nachdenken, ist dies in Ordnung

answerC.py


x=int(input())
ans=0
ans+=(x//11)*2
x-=(x//11)*11
if x==0:
    print(ans)
elif x<=6:
    print(ans+1)
else:
    print(ans+2)

D Problem

Es war ein grünes Problem und es war das zweite Mal. Wenn ich also nicht aufpasste, dauerte es länger als erwartet.

Es ist klar, dass es die maximale Anzahl von Karten ** ist, alle Elemente einzeln zu belassen, was Sie dazu motiviert. Wenn Sie hier 3 aus dem Fragensatz auswählen, werden Sie 2 davon essen, sodass Sie sehen können, dass die Auswahl aus denjenigen, die diese 2 abdecken, der beste Weg ist, dies zu erreichen. Daher halte ich es nicht für schwierig, auf die Idee zu kommen, dass ** die Anzahl der versicherten Personen als separate Gruppen betrachtet werden sollte. Wenn beispielsweise eine Karte "1 1 1 2 2 3 4 4 4 5 5" vorhanden ist, wird sie in "1 2 3 4 5" und "1 1 2 4 4 5" und die letztere Gruppe von Abdeckungen unterteilt Erwägen Sie, die Zahlen der Reihe nach zu essen. Wenn Sie 1 und 1 (gleiche Anzahl) in der letzteren Gruppe essen möchten, können Sie zunächst 3 zusammen mit 1 in der ersten Gruppe auswählen. Wenn Sie versuchen, 2 und 4 zu essen, können Sie sowohl 2 als auch 4 essen, indem Sie ** 2 oder 4 der vorherigen Gruppe auswählen **. Sie können 2 und 5 auf die gleiche Weise essen, so dass Sie die letztere Gruppe von Kopfbedeckungen auffressen und die maximale Anzahl von Karten erreichen können, 5. Wenn die Anzahl der leidenden Gruppen jedoch ungerade ist, müssen Sie nur eine aus der vorherigen Gruppe ** essen, da nur zwei Personen ** essen dürfen (z. B. wenn "1 1 2 3"). ). Basierend auf der obigen Überlegung kann die maximale Anzahl von Karten erhalten werden, indem gezählt wird, was abgedeckt ist, und durch die Gesamtgleichmäßigkeit und Seltsamkeit klassifiziert wird. (Zu diesem Zeitpunkt können Sie sortieren und gruppieren, um sie ordentlich in Gruppen zu unterteilen. ** Die Funktion "Gruppieren nach" ist sehr praktisch **.)

answerD.py


n=int(input())
def groupby(a):
    a2=[[a[0],1]]
    for i in range(1,len(a)):
        if a2[-1][0]==a[i]:
            a2[-1][1]+=1
        else:
            a2.append([a[i],1])
    return a2

b=groupby(sorted([int(i) for i in input().split()]))
l=len(b)
co=0
for i in range(l):
    co+=(b[i][1]-1)
if co%2==0:
    print(l)
else:
    print(l-1)

Recommended Posts

AtCoder Beginner Contest 102 Rückblick auf frühere Fragen
AtCoder Beginner Contest 072 Rückblick auf frühere Fragen
AtCoder Beginner Contest 085 Rückblick auf frühere Fragen
AtCoder Beginner Contest 062 Rückblick auf frühere Fragen
AtCoder Beginner Contest 113 Rückblick auf frühere Fragen
AtCoder Beginner Contest 074 Rückblick auf frühere Fragen
AtCoder Beginner Contest 051 Rückblick auf frühere Fragen
AtCoder Beginner Contest 127 Rückblick auf frühere Fragen
AtCoder Beginner Contest 119 Rückblick auf frühere Fragen
AtCoder Beginner Contest 151 Rückblick auf frühere Fragen
AtCoder Beginner Contest 075 Rückblick auf frühere Fragen
AtCoder Beginner Contest 054 Rückblick auf frühere Fragen
AtCoder Beginner Contest 110 Rückblick auf frühere Fragen
AtCoder Beginner Contest 070 Rückblick auf frühere Fragen
AtCoder Beginner Contest 105 Rückblick auf frühere Fragen
AtCoder Beginner Contest 112 Rückblick auf frühere Fragen
AtCoder Beginner Contest 089 Rückblick auf frühere Fragen
AtCoder Beginner Contest 069 Rückblick auf frühere Fragen
AtCoder Beginner Contest 079 Rückblick auf frühere Fragen
AtCoder Beginner Contest 056 Rückblick auf frühere Fragen
AtCoder Beginner Contest 087 Rückblick auf frühere Fragen
AtCoder Beginner Contest 067 Rückblick auf frühere Fragen
AtCoder Beginner Contest 093 Rückblick auf frühere Fragen
AtCoder Beginner Contest 046 Rückblick auf frühere Fragen
AtCoder Beginner Contest 123 Überprüfung früherer Fragen
AtCoder Beginner Contest 049 Rückblick auf frühere Fragen
AtCoder Beginner Contest 078 Rückblick auf frühere Fragen
AtCoder Beginner Contest 081 Rückblick auf frühere Fragen
AtCoder Beginner Contest 060 Rückblick auf frühere Fragen
AtCoder Beginner Contest 104 Rückblick auf frühere Fragen
AtCoder Beginner Contest 057 Rückblick auf frühere Fragen
AtCoder Beginner Contest 121 Rückblick auf frühere Fragen
AtCoder Beginner Contest 126 Rückblick auf frühere Fragen
AtCoder Beginner Contest 090 Rückblick auf frühere Fragen
AtCoder Beginner Contest 103 Rückblick auf frühere Fragen
AtCoder Beginner Contest 061 Rückblick auf frühere Fragen
AtCoder Beginner Contest 059 Rückblick auf frühere Fragen
AtCoder Beginner Contest 044 Rückblick auf frühere Fragen
AtCoder Beginner Contest 048 Rückblick auf frühere Fragen
AtCoder Beginner Contest 124 Rückblick auf frühere Fragen
AtCoder Beginner Contest 116 Rückblick auf frühere Fragen
AtCoder Beginner Contest 097 Rückblick auf frühere Fragen
AtCoder Beginner Contest 088 Rückblick auf frühere Fragen
AtCoder Beginner Contest 092 Rückblick auf frühere Fragen
AtCoder Beginner Contest 099 Rückblick auf frühere Fragen
AtCoder Beginner Contest 065 Rückblick auf frühere Fragen
AtCoder Beginner Contest 053 Rückblick auf frühere Fragen
AtCoder Beginner Contest 094 Rückblick auf frühere Fragen
AtCoder Beginner Contest 063 Rückblick auf frühere Fragen
AtCoder Beginner Contest 107 Rückblick auf frühere Fragen
AtCoder Beginner Contest 071 Rückblick auf frühere Fragen
AtCoder Beginner Contest 064 Rückblick auf frühere Fragen
AtCoder Beginner Contest 082 Rückblick auf frühere Fragen
AtCoder Beginner Contest 084 Rückblick auf frühere Fragen
AtCoder Beginner Contest 068 Rückblick auf frühere Fragen
AtCoder Beginner Contest 043 Rückblick auf frühere Fragen
AtCoder Beginner Contest 098 Rückblick auf frühere Fragen
AtCoder Beginner Contest 114 Rückblick auf frühere Fragen
AtCoder Beginner Contest 045 Rückblick auf frühere Fragen
AtCoder Beginner Contest 120 Rückblick auf frühere Fragen