본문 바로가기
Python

[Python] enumerate, BOJ 17389번 보너스 점수 풀이

by matters_ 2020. 1. 3.

Python enumerate란?

  • 파이썬의 for in 반복문에서 유용하게 쓰이는 함수이다.
  • 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 리턴한다.
  • 리스트를 탐색할 때 리스트의 크기를 받아 인덱스로 접근하기 보다 enumerate를 사용하는 편이 좋다.
  • enumerate는 열거하다는 뜻을 가지고 있다.

BOJ 17389번 보너스점수 문제풀이

백준 문제풀이로 활용해보도록 하겠다.

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

 

17389번: 보너스 점수

숭고한 알고리즘 캠프 퀴즈 타임이 시작되었다! PS 기초, 동적 계획법, 파라메트릭 서치, 욱제의 생일, 탐색, 그리디, 최단경로 알고리즘, 구데기컵, 서로소 집합, 최소 신장 트리, 최소 공통 조상, 세그먼트 트리, 코드포스에서 C++로 높은 수준의 난수를 생성하는 방법, 최대 유량, 볼록 껍질, 스타트링크 사무실에 있는 게임용 컴퓨터의 RAM의 총 용량 등등 수많은 주제를 총망라하고 있는 이 미니 대회는 수많은 참가자들의 도전으로 오늘도 빛나고 있고,

www.acmicpc.net

N, S = int(input()), input()

"""
answer = 0
bonus = 0
for i in range(N):
    if S[i] == 'O':
        answer += (i+1) + bonus;
        bonus += 1
    else:
        bonus = 0
print(answer)
"""

score, bonus = 0, 0

for idx, OX in enumerate(S):
    if OX =='O':
        score = score+idx+1+bonus, bonus+1
    else:
        bonus = 0

print(score)

 

주석처리된 부분보다 주석처리되지 않은 부분을 이용하자.

댓글