-
[ 백준 8958번 ] OX퀴즈 문제코딩 공부/Baekjoon Problem_Set 2021. 7. 9. 19:05
이번에는 백준 8958번 문제를 풀어보겠습니다.
<문제>
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
<입력>
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.<아이디어>
테스트 케이스의 개수를 입력받아서 테스트 케이스만큼 반복문을 돌리자.
각 루프마다 입력 데이터 OX로 이루어진 문자열을 입력받자
문자열 데이터를 하나 씩 확인하면서 점수를 더하자.
연속으로 'O'가 나왔는지 확인하는 방법은? --> O가 나오면 1을 더해주고 X가 나오면 0을 할당하는 변수를 생성하자
생성한 변수를 최종 점수 변수에 더해주자
#8958번 N = int(input()) for _ in range(N): str_arr = input() p = 0 #점수 c = 0 #연속으로 O가 나온 횟수 for j in str_arr: if(j == 'O'): c += 1 elif(j == 'X'): c = 0 p +=c print(p)
더 좋은 방법이 있으면 언제든지 알려주시면 감사하겠습니다.
'코딩 공부 > Baekjoon Problem_Set' 카테고리의 다른 글
[ 백준 15596번 ] 정수 N개의 합 (0) 2021.07.14 [ 백준 4344번 ] 평균은 넘겠지. (0) 2021.07.09 [ 백준 1546 번 ] 평균 (0) 2021.07.07 [ 백준 3052번 ] 나머지 문제 (0) 2021.07.07 [ 백준 1110번 ] 더하기 사이클 구하기 (0) 2021.07.04