Python/Baekjoon

백준 8958번 문제 풀이 - 공부하는 도비

DOVISH WISDOM 2020. 12. 4. 16:17  
728x90
반응형

www.acmicpc.net/problem/8958

 

8958번: OX퀴즈

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

www.acmicpc.net

문제를 풀려고 하니 반복문 중첩을 사용하여야 풀 수 있을 거 같아서 큰 for문 안에 while문을 중첩시켰습니다.

큰 for 문은 가장 처음 입력되는 정수만큼 라인을 입력 받을 수 있다는 것을 의미합니다.

for 문 속 while문이 O의 개수를 세는 부분입니다. 

 

그 중 while문 속 if 문을 통해서 O이 몇 번 연속되는지 알 수 있습니다.

그 값을 count 변수에 저장하고 output 리스트에 넣어둡니다.

 

OXXOXOOOX 로 예시를 들면,

Output 리스트에는 아래 표 처럼 값이 저장되겠죠?

O X O O X O O O X
1 0 1 2 0 1 2 3 0

 

Value 변수에 output의 합을 계산하여 저장합니다.

Finally_value 는 5줄의 라인이 입력으로 들어왔다면, 총 5개의 합을 넣어주기 위해 for문이 반복될 때마다 값을 finally_value 리스트에 저장합니다.

 

마지막 for문은 finally_value를 출력하기 위해 사용되었습니다. 

 

 

이렇게 8958번 문제를 풀어보았습니다.

반응형