728x90
문제) "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다.
문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다.
예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
a = int(input())
X = []
for i in range(a):
X.append(str(input()))
for j in X:
add = 1
point = 1
score = 0
for z in j:
if z == 'O':
score += add
point += 1
add = point
else:
point = 1
add = 1
print(score)
이번 문제는 이해하는데 조금 어려웠다. 일단 변수 a와 list X를 선언하였다.
a는 몇 번의 케이스를 입력할 지에 대해 나타내는 것이고, X는 저장하기 위한 공간이다.
for 문을 통해 입력된 a만큼 반복한다. 그리고 입력된 X를 문자열로 저장한다.
그 후 for 문을 한번 더 사용하였고, add와 point를 증감을 위해 1로 선언하였다.
그리고 score는 초기화를 위해 0으로 선언하였다.
그래서 만약 z가 o이면 point는 1씩 증감한다. 그리고 add는 point를 같게 선언하고,
score += add를 통해 score의 값을 도출해낸다.
else는 o가 동일하게 나오지 않으면 point와 add를 1로 출력시킨다.
이 문제는 for 문에 대한 이해도가 많이 필요한 것 같고, 나는 아직 많이 부족한 것 같다.
이해가 안되시거나 틀린 정보는 댓글로 알려주시면 감사하겠습니다!
728x90
'알고리즘 > 백준 - 파이썬' 카테고리의 다른 글
백준) 15596번 정수 N개의 합 문제 (파이썬) (0) | 2022.05.30 |
---|---|
백준) 4344번 평균은 넘겠지 문제 (파이썬) (0) | 2022.05.30 |
백준) 1546번 평균 문제 (파이썬) (0) | 2022.05.30 |
백준) 3052번 나머지 문제 (파이썬) (0) | 2022.05.30 |
백준) 2577번 숫자의 개수 문제 (파이썬) (0) | 2022.05.28 |
댓글