Coding Test/BaekJoon_Python

BaekJoon - 8958번: OX퀴즈(1차원 배열, PYTHON)

  • -
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(문자열)
  • print
  • 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
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.