코딩테스트/기초

백준 8958 OX퀴즈 - python

math_tbro 2022. 1. 1. 17:16

 

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

 

8958번: OX퀴즈

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

www.acmicpc.net

 

풀이 참조 : https://deokkk9.tistory.com/7

 

[python 파이썬] 백준 8958번: OX퀴즈

https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속..

deokkk9.tistory.com

 

풀이 :

 

후기 : 틀렸다... 아니 못 풀겠더라... 이런 방법을 쓰는지 신선하다. 다음부터는 꼭 풀자

 

1. n 입출력은 늘 하던대로 간단히 받아온다.

 

2. 그 다음 늘 우리는 숫자를 입출력 받았는데 이경우는 문자이므로 간단하게 input()만 적용해준다.

또 지금껏 한번에 출력값을 싹 한번에 받아와서 리스트로 만들었었는데 이경우는 출력값 그 자체 하나하나가 뭐가 들어갔는지 계산을 해야하므로  리스트로 만들기 전에 숫자로 계산을 끝내야 한다.

 

3. 위 설명을 좀 더 자세히 하면 'OOX' 가 들어갔을 때 'OOX'를 한번에 찍는게 아니라 'O'가 들어가면 1 'O'가 또 들어가면 2. 'X' 들어가면 0 이런식으로 계산이 되게 해야한다.

 

5. 따라서 score = 0 sum_score = 0 으로 지정한다음 

 

O가 들어갔을 때 1  그리고 sum_socre 에 1을 추가해주고 다시 O가 들어가면 score =2 sum_score에 다시 이 2를 더해준다. 

X가 들어가면 이전에 저장된 스코어 값이 0으로 초기화 되며 이것을 sum_socre에 더해주면 끝이다.

 

6. 100번의 말보다 한번의 예시가 더 좋더라.

'OOXXOXXOOO' 

 

O -> score = 1 / sum_score =1

O -> score = 2 / sum_score = 1+2

X -> score = 0 / sum_score= 1+2+0

...