백준

[백준] 8958번 : OX퀴즈 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

우당탕탕 개발자 2023. 6. 29. 14:00
728x90
반응형

 

 

8958번: OX퀴즈

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

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

  1. 처음에 테스트 케이스의 개수를 입력받는다. N = int(input())
  2. 각 테스트 케이스를 입력받을 공백 리스트를 생성한다. result = list()
  3. 케이스의 개수만큼 반복을 진행한다. for i in range(N)
  4. 각 테스트 케이스를 입력받아 리스트에 추가한다. result.append(input())
  5. 저장한 각 테스트 케이스를 하나씩 추출한다. for i in result
  6. 테스트 케이스의 O, X를 저장할 새로운 리스트를 생성한다. li = list()
  7. 각 케이스별 문자를 하나씩 추출한다. for j in i
  8. 각 문자를 리스트에 하나씩 추가한다. li.append(j)
  9. 점수와 O의 개수를 저장할 변수를 생성하고 초기화한다. grade = 0 point = 0
  10. 각 케이스의 O, X 문자를 저장할 리스트의 개수만큼 반복한다. for j in range(len(li))
  11. 만약 문자가 X이면 O의 개수를 저장하는 변수를 0으로 바꾼다. if (li[j] == "x"): point = 0
  12. 반면에 문자가 O이면 O의 개수를 저장하는 변수를 1 증가시킨다. else: point += 1
  13. 점수에 O의 개수를 저장한 값을 더한다. grade += point
  14. 최종 점수를 출력한다. print(grade)
반응형

3. 소스코드

N = int(input())

result = list()
for i in range(N) :
    result.append(input())

for i in result :
    li = list()
    for j in i :
        li.append(j)
    
    grade = 0
    point = 0
    
    for j in range(len(li)) :
        if (li[j] == "X") :
            point = 0
        else :
            point += 1
            
        grade += point
        
    print(grade)
728x90
반응형