문제
https://www.acmicpc.net/problem/8958
연속으로 맞추면 가산점이 붙는 OX퀴즈 채점하기. 예를 들어서 OOOXOXOX면 1+2+3+0+1+0+1+0, 합이 8점이다.
풀이
import sys
a=int(sys.stdin.readline())
for i in range(a):
print(i)
입력단은 쉽다. 역시나 sys.stdin.readline() 나왔고요…
import sys
a=int(sys.stdin.readline())
for i in range(a):
str=sys.stdin.readline()
# 이 부분에서 점수 처리가 이루어져야 한다
print(str)
기본적으로 변수 생성은 str 밑에서 진행할거고, 점수 처리는 str 안쪽에서 일어난다. (여기서 안쪽=안쪽으로 들여쓰기)
import sys
a = int(sys.stdin.readline())
for i in range(a):
str = sys.stdin.readline().strip()
score = 0
for j in range(len(str)):
if str[j] == "O":
score=score+1
else:
pass
print(score)
이 코드는 아직 가산점 매기는 기능이 없으므로 이대로 내면 틀린다. pass는 if문에 있는 조건이 안 맞으면 넘어가라는 얘기. 해당 if문에서는 문자열이 O이면 점수를 하나 더하게 된다.
import sys
a = int(sys.stdin.readline())
for i in range(a):
str = sys.stdin.readline().strip()
score = 0
sum = 0
for j in range(len(str)):
if str[j] == "O":
score = score+1
sum = sum + score
else:
score = 0
sum = sum + score
print(sum)
sum이 점수의 총합이고, score는 O가 있으면 추가되는 점수. 즉 여기서 가산점을 매긴다. else의 경우 pass했더니 로직이 개판이 되어서 0을 더하는걸로 했다.
'BOJ > [BOJ] Python' 카테고리의 다른 글
백준 15596번 풀이 (0) | 2022.08.18 |
---|---|
백준 4344번 풀이 (0) | 2022.08.18 |
백준 1546번 풀이 (0) | 2022.08.18 |
백준 3052번 풀이 (0) | 2022.08.18 |
백준 2577번 풀이 (0) | 2022.08.18 |