📝 문제
> "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.

https://www.acmicpc.net/problem/8958
8958번: OX퀴즈
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수
www.acmicpc.net
🎨 풀이
💡 성공 코드
n = int(input())
for _ in range(n):
arr = list(map(str,input()))
stack = 0
result = 0
for i in range(len(arr)):
if arr[i] == 'O':
result += 1 + stack
stack += 1
else :
stack = 0
print(result)
> 핵심 : O가 연속으로 나올 때마다 스택 쌓는 식으로 운영.
1. n을 입력받고, n만큼 arr을 입력받도록 for문을 돌린다.
2. 입력받은 arr을 차례대로 하나씩 보면서, arr[i]가 O인지 체크한다.
2-1. O라면 result에 원래 더해줘야하는 1 & 쌓여있는 스택을 함께 더한다. 그 후, stack에는 1을 더해준다.
2-2. X라면 콤보가 깨진것이기 때문에 stack = 0 으로 바꿔준다.
3. result를 출력한다.


끝~
⭐ 느낀점
> stack을 굳이 쌓지 않더라도 뭔가 풀 수 있을 것 같긴 한데, 그래도 뭐 만족한다. 잘 푼 것 같다. ^_^ 오늘도 성장했나..? ㅎㅎ? ㅋㅋㅋㅋㅋㅋ 열심히 해보자 ㅠㅠ
'🎲 알고리즘 공부 > 백준' 카테고리의 다른 글
[백준] 15596번 - 정수 N개의 합 (파이썬) (0) | 2022.06.09 |
---|---|
[백준] 4344번 - 평균은 넘겠지 (파이썬) (0) | 2022.06.08 |
[백준] 1546번 - 평균 (파이썬) (0) | 2022.06.06 |
[백준] 3052번 - 나머지 (파이썬) (0) | 2022.06.05 |
[백준] 2577번 - 숫자의 개수 (파이썬) (0) | 2022.06.04 |