#41. 백준 8958번 문제 풀이: OX퀴즈 문제 원본 보기
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. 해당 자리의 점수는 연속된 O의 갯수이다. OX의 문자열이 주어졌을 때 점수를 구하시오. 입력: 첫줄에 테스트 케이스 개수, 둘째 줄 부터 OX 문자열 출력: 각 문자열의 점수를 한줄에 하나씩 출력
입력/출력
--입력--
5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX
--출력--
10
9
7
55
30
문제풀이+해설
문자열을 입력받고, 문자열에서 각 문자값을 확인해서 처리해 하는 문제이다.
--
총합 = 0
루프 (문자열 길이 만큼):
 if O면 점수카운터 증가, 총합+점수카운터
 if X면 점수카운터 리셋(0)
출력:총합
--
code sol.
n = int(input())
# 개수값을 입력받아 정수로 변환해서 n에 대입
for i in range(n): # n만큼 반복
  s = input() # 문자열을 받음
  sum = 0 # 점수합계 초기값 0
  point = 0 # 연속점수, 초기값 0
  for j in range(len(s)): # 문자열 길이 만큼 반복
    if s[j] == 'O': # 정답(O)일 경우 포인트 인정
      point += 1 # 포인트값 증가
      sum += point # 점수합계에 더함
    else: # 오답(X)의 경우 포인트 0으로 리셋
      point = 0 # 포인트 리셋
  print(sum) # 점수합계 출력
© 코드솔 - CodeSol. All Rights Reserved.