본문 바로가기
코딩공부/백준 (python)

[백준 8958] OX퀴즈 (Python)

by CodingKwon 2022. 2. 22.

문제 링크

https://www.acmicpc.net/problem/8958

 

8958번: OX퀴즈

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

www.acmicpc.net

 

나의 코드 (Python)

n = int(input())    # 입력개수
arr = []    # OX퀴즈 답안을 저장할 배열
for i in range(n):  # OX퀴즈 답안 저장
    arr.append(input())

for cnt in arr:     # 각 답안 분석
    res = 0     # 답안의 점수를 저장
    flag = 0    # 연속된 정답에 대한 점수 가중치
    for j in cnt:   # 답안에 한 문제씩 검사
        if j == "O":  # 정답을 맞춘 경우
            flag += 1
            res += flag
        else:   # 문제를 못맞춘 경우
            flag = 0
    print(res)  # 답안에 대한 점수 출력

 

이중 for문을 이용하여 각 답안에 대한 각 문제의 결과를 비교할 수 있습니다.

이때 정답을 맞추면 flag를 한 개 올리고 flag 만큼 점수에 더해줍니다.

오답을 만나게 되면 flag를 0으로 초기화 합니다.

 

 

댓글