본문 바로가기
Algorithm/구현

[Python3] 백준 8958번 OX퀴즈

by HANNI하니 2022. 1. 27.

try 3 times / 난이도 : ★ (난이도는 제가 느끼는 매우 주관적인 난이도입니다.)

문제 확인

 

8958번: OX퀴즈

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수

www.acmicpc.net

코드 깃허브 확인

 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

정답 해설

n = int(input())

for _ in range(n):
  ox_list = list(input())
  score = 0
  sum = 0
  
  for ox in ox_list:
    if ox == 'O':
      score += 1 #1씩 증강
      sum += score
    else:
      score = 0  #증강한 것 리셋
      
  print(sum)

 

공부한 내용

1.  다른 풀이 이해하기

거의 같은 풀이 방법이다.

n = int(input())

for _ in range(n):
  ox_list = list(input())
  score = 1 #처음부터 1로 입력
  sum = 0
  
  for ox in ox_list:
    if ox == 'O':
      sum += score #sum에 1 더해주기
      score += 1 #그 후 1씩 증강
    else:
      score = 1  #증강한 것 원래값인 1로 리셋
      
  print(sum)

댓글