깡뇽

[백준] 8958번 OX퀴즈 파이썬 본문

Algorithm/BAEKJOON

[백준] 8958번 OX퀴즈 파이썬

깡뇽 2022. 3. 8. 00:59
반응형

문자열과 관련된 유형들도 열심히 풀어보려고 한다.

 

테스트 케이스의 개수를 입력받는다.

테스트 케이스는 O와 X로 이루어진 한 줄의 문자열인데 O의 연속되는 계수만큼 점수를 받는다.

예를 들어, "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이 된다.

 

8958번 OX퀴즈 풀이

[시도1] 맞았습니다!!

n = int(input())

# 테스트 케이스 반복
for _ in range(n):
  scores = [] #초기화
  score = 0 #초기화
  result = input() #OX퀴즈 문자열 입력
  
  for i in range(len(result)):
  # O가 나오면 점수를 1 더해줌
    if result[i] == "O":
      score += 1
      # X가 아닌 O로 문자열이 끝나더라도 score를 scores에 넣어 주기
      if i == (len(result) - 1):
        for j in range(score):
          score += j
        scores.append(score)
   # O가 나오지 않으면 (X가 나오면) 이전에 O로 적립해둔 score를 scores 배열에 넣기
    else:
      for j in range(score):
        score += j
      scores.append(score)
      score = 0 # score 초기화
      
  print(sum(scores)) # scores 배열에 저장해둔 점수들 합계

반응형