728x90
문제 분석
테스트 케이스 N개 입력
N개 만큼의 OX무작위 문자열 입력 후 점수 환산
변수 제약
- 문자열 "O"/"X"만 사용
- 문자열의 크기는 0보다 크고 80보다 작다
입력
5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX
출력
10
9
7
55
30
출력 매커니즘(예시)
- 입력[OXOOXOOOXOXOX]
- 출력[1+0+3+0+6+0+1+0+1+0] => 12
- X = 0점
- O x1 = 1점
- O x2 = 1+2 = 3점
- O x3 = 1+2+3 = 6점
- .....
유의사항(코드 설계)
- N개의 테스트 케이스 중 각각의 케이스에 대한 코드 구현
- O와 X 분리 방법 채택
- 연속에 따라 증가하는 변수, 그 변수를 누적시킬 변수 필요
사용할 문법
- 문자열 분리 list(문자열)
- list(append)
- for i in range()
정답코드
#테스트 케이스 개수 N
N = int(input())
N_list = []
#N개의 테스트 케이스 출력
for i in range(N):
#OX퀴즈의 점수 초기화
score = 0
#연속되는 문제의 수를 나타내는 count 초기화
count = 0
#N_list의 배열에 무작위 OX문자열 입력
N_list.append(input())
#print(N_list, '_line 7')
#N_input에 입력받은 문자열을 각각 분리
N_input = list(N_list[i])
#print(N_input, '_line 9')
#i번째 테스트 케이스에 N_input에 나눠놓은 OX문자열 분석 로직
for i in range(len(N_input)):
#O일 경우엔 연속성(count) 1씩 증가하며 score에 합산
if N_input[i] == 'O':
count+=1
score+=count
#print(i,'번째 점수: ',score,'점')
#O가 아닐 경우엔 연속성 초기화, 점수 미 증가
else:
count = 0
#i번째 테스트 케이스 점수 출력
print(score)
728x90
'Coding Test > BaekJoon_Python' 카테고리의 다른 글
BaekJoon - 15596번: 정수 N개의 합(함수, PYTHON) (0) | 2022.09.05 |
---|---|
BaekJoon - 4344번: 평균은 넘겠지(1차원 배열, PYTHON) (0) | 2022.09.04 |
BaekJoon - 1546번: 평균(1차원 배열, PYTHON) (0) | 2022.09.03 |
BaekJoon - 3052번: 나머지(1차원 배열, PYTHON) (0) | 2022.09.03 |
BaekJoon - 2562번: 최댓값(1차원 배열, PYTHON) (0) | 2022.09.03 |