청야에몽
청야의 개발 일기
청야에몽
전체 방문자
오늘
어제
  • 분류 전체보기 (153)
    • os (4)
      • Linux (4)
    • Language (32)
      • Python (15)
      • C# (6)
      • Java (11)
    • BaekJoon (92)
      • 단계별로 풀어보기 (81)
      • 누적합 (11)
    • Test (6)
      • 코딩테스트 (6)
      • 42 SEOUL (0)
    • Project (9)
      • 충돌, 피하기 게임 (8)
      • Unreal engine5 CICD 구축 (1)
    • Git & GitHUB (9)
    • Cloud (0)
      • AWS (0)
      • Azure (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • pygame
  • 재귀 함수
  • 누적 합
  • 자료형
  • git
  • Revert
  • Rebase
  • Linux
  • 중첩for문
  • for문
  • 리눅스
  • 연산자
  • 누적합
  • java
  • 논리 연산자
  • c#
  • Python
  • 백준
  • 파이썬
  • Reset

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
청야에몽

청야의 개발 일기

BaekJoon/단계별로 풀어보기

[백준] 1차원 배열 - 8958번 (Python)

2022. 11. 22. 21:36
728x90

https://www.acmicpc.net/problem/8958

 

8958번: OX퀴즈

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수

www.acmicpc.net


문제

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.

"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.

OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.

출력

각 테스트 케이스마다 점수를 출력한다.

코드 정답

tc = int(input())
a = []

for i in range(tc):
    a.append(input())
    
for i in range(tc):
    sum = 0
    count = 0
    for j in range(len(a[i])):
        if a[i][j] == "O":
            count += 1
            sum += count
        elif a[i][j] == "X":
            count = 0
    print(sum)

풀이

1행 : 테스트 케이스의 개수를 입력받을 변수 tc 를 만든 후 문자를 입력받아 정수형으로 변환하여 저장한다.

2행: 변수 a 를 리스트 형식으로 만든다.

4행 : i 가 0부터 tc 에 저장되어 있는 값에 다다를때까지 5행을 반복한다.

5행 : 값을 입력받아 a 의 인덱스 번호에 맞춰 순차적으로 저장된다.(a[0]부터 저장)

7행 : i 가 0부터 tc 에 저장되어 있는 값에 다다를때까지 16행을 반복한다.

8행 : 변수 sum 을 0 이란 값을 주고 정수형으로 만든다.

9행 : 변수 count 를 0이란 값을 주고 정수형으로 만든다.

10행 : j 가 0부터 a[i] 에 저장되어 있는 문자의 길이에 다다를 때까지 15행을 반복한다.

11행 : 여러행이 입력되어 있기 때문에 a[i][j] 즉, 2차원 배열을 사용한다. a[0][1] 이라면 세로 인덱스 0번, 가로 인덱스 1번을 뜻한다. 만약 지정된 값이 O 라면 12행과 13행을 실행한다.

12행 : count 에 1을 더한다

13행 : sum 에 count 를 더한다.

14행 : 11행이 아닐 경우 그리고 a[i][j] 에 저장된 값이 X 일경우 15행을 실행한다.

15행 : count 에 0 을 대입한다.

16행 : 저장된 sum의 값을 출력한다.

728x90
저작자표시 비영리 변경금지

'BaekJoon > 단계별로 풀어보기' 카테고리의 다른 글

[백준] 함수 - 15596번 (Python)  (0) 2022.11.23
[백준] 1차원 배열 - 4344번 (Python)  (1) 2022.11.22
[백준] 1차원 배열 - 1546번 (Python)  (0) 2022.11.22
[백준] 1차원 배열 - 3052번 (Python)  (0) 2022.11.22
[백준] 1차원 배열 - 5597번 (Python)  (0) 2022.11.22
    'BaekJoon/단계별로 풀어보기' 카테고리의 다른 글
    • [백준] 함수 - 15596번 (Python)
    • [백준] 1차원 배열 - 4344번 (Python)
    • [백준] 1차원 배열 - 1546번 (Python)
    • [백준] 1차원 배열 - 3052번 (Python)
    청야에몽
    청야에몽
    개인적으로 학습을 하여 까먹지 않기 위해 올리는 블로그입니다.

    티스토리툴바