백준(Python) 풀이/구현

백준(Python) 17389번 보너스 점수 풀이

개발윗미 2021. 12. 3. 12:21

Python으로 구현한 17389번 보너스 점수 문제 풀이입니다.

 

https://www.acmicpc.net/problem/17389

 

17389번: 보너스 점수

숭고한 알고리즘 캠프 퀴즈 타임이 시작되었다! PS 기초, 동적 계획법, 파라메트릭 서치, 욱제의 생일, 탐색, 그리디, 최단경로 알고리즘, 구데기컵, 서로소 집합, 최소 신장 트리, 최소 공통 조상,

www.acmicpc.net


n = int(input())
data = input()

score = 0
bonus = 0
for i in range(len(data)) :
  if data[i] == 'O' :
    score += i + 1
    score += bonus
    bonus += 1
  else :
    bonus = 0

print(score)

 

1. 입력받은 문자를 하나씩 확인하여 해당 문자가 'O'일 경우 score에 i + 1 을 누적한다. (인덱스 번호는 0부터 시작하기 때문)

 

2. 또한, score에 보너스 점수도 누적한 후 보너스 점수를 1 증가시킨다.

 

3. 만약 해당 문자가 'X'일 경우 보너스 점수를 0으로 초기화한다.