[PYTHON] AtCoder ABC 098 C - Aufmerksamkeitsideen, die zur Antwort führen

Problem

C - Attention https://atcoder.jp/contests/abc098/tasks/arc098_a

Denkweise, die zur Antwort führt

Der zu beachtende Punkt ist, dass die Anzahl der ** Personen **, die sich umdrehen, wenn der Anführer $ i $ ist, abgefragt wird. Mit anderen Worten, es spielt keine Rolle, um welche Zahl sich die Person dreht. Daher ist es ausreichend, die Anzahl der nach Westen ausgerichteten Personen von $ 0 $ auf $ i -1 $ und die Anzahl der nach Osten ausgerichteten Personen von $ i + 1 $ auf $ N -1 $ zu addieren. Tun Sie dies für $ 0 \ leq i \ leq N - 1 $ und der Mindestwert ist die Antwort.

Um die Berechnungseffizienz zu verbessern, berechnen Sie die kumulative Summe der Anzahl der nach Westen ausgerichteten Personen und der Anzahl der nach Osten ausgerichteten Personen im Voraus, wenn $ 0 \ leq i \ leq N -1 $ und der Anführer der $ i $ th ist Die Anzahl der Personen, an die sie sich wenden, wird mit $ O (1) $ berechnet.

Antworten

Python.

N = int(input())
S = input()
int_s = [0] * N
cum_sum_w = [0] * (N + 1)
cum_sum_e = [0] * (N + 1)
answers = [0] * N
for i in range(N):
    if (S[i] == 'W'):
        int_s[i] = 1
    else:
        int_s[i] = 0
    cum_sum_w[i + 1] = cum_sum_w[i] + int_s[i]
for i in range(N):
    if (S[i] == 'E'):
        int_s[i] = 1
    else:
        int_s[i] = 0
    cum_sum_e[i + 1] = cum_sum_e[i] + int_s[i]
for i in range(N):
    answers[i] = cum_sum_w[i] + (cum_sum_e[N] - cum_sum_e[i + 1])
print(min(answers))

Recommended Posts

AtCoder ABC 098 C - Aufmerksamkeitsideen, die zur Antwort führen
Atcoder ABC125 C - GCD auf Tafel
AtCoder ABC 114 C-755 mit Python3 gelöst
[AtCoder-Kommentar] Gewinnen Sie mit Python das ABC165 C-Problem "Many Requirements"!
[Erklärung zum AtCoder] Kontrollieren Sie die A-, B- und C-Probleme von ABC182 mit Python!
Atcoder ABC099 C - Separate Bank Separate Lösung
ABC-Memorandum [ABC157 C - Errate die Zahl] (Python)
AtCoder ABC176
AtCoder ABC177
[AtCoder Erklärung] Kontrollieren Sie ABC184 A, B, C Probleme mit Python!
[Erklärung zum AtCoder] Kontrollieren Sie die A-, B-, (C), D-Probleme von ABC165 mit Python!
[AtCoder-Erklärung] Kontrollieren Sie die A-, B-, C- und D-Probleme von ABC183 mit Python!
[Erklärung zum AtCoder] Kontrollieren Sie die A-, B-, C- und D-Probleme von ABC181 mit Python!
AtCoder ABC110 C-String-Manipulation zum Lösen in Ruby
Fordern Sie AtCoder (ABC) 164 mit Python heraus! A ~ C Problem
Über den Test
AtCoder ABC 174 Python
AtCoder ABC 175 Python
Über die Warteschlange
Löse den Atcoder ABC176 (A, B, C, E) in Python