[Python_OX퀴즈]
OX 퀴즈 점수 구하기
<STUDY>
📢 문제 📢
OX 퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램 작성하기
(문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다.)
❗아이디어
- "O"가 연속된 값이면 score를 1씩 증가시키고 연속되지 않은 경우 score를 1로 초기화 한 후 빈 배열에 넣는다.
- 점수가 들어간 배열의 합을 구한다.
1. j번째 요소가 연속된 값인지 확인하기
result = list(input()) # 정답 (O,X)
score = 0 # score 초깃값
li = [] # score 추가할 빈 배열 정의
for j in range(len(result)): # result의 각 요소 확인
if result[j] == "O": # j번째 요소 == "O"
if result[j] != result[j - 1]: # 연속되지 않은 경우
# score
if result[j] == result[j - 1]: # 연속된 경우
# score
else: # j번째 요소 != "O"
pass
- 점수(score)와 점수를 추가할 빈 배열(li)을 정의한다.
- 정답(O,X)를 리스트로 정의한다. (result)
- for문을 이용하여 각 요소가 "O"인 경우 연속적으로 나온 수인지 아닌지 확인한다.
2. 연속이 아닌 경우 (앞 요소가 "X")
if result[j] != result[j - 1]:
li.append(1)
score = 1
- 앞 요소가 "X"인 경우에는 연속적으로 나오지 않은 경우이므로 1을 배열에 추가한다.
- 다음 요소가 "O"나와 연속된 경우 1을 더해 2점이 되어야 하기 때문에 score를 1로 정의한다.
3. 연속인 경우 (앞 요소가 "O")
if result[j] == result[j - 1]:
score += 1
li.append(score)
- 앞 요소가 "O"인 경우에는 점수가 연속된 갯수만큼 커져야 하므로 score를 1 증가시킨 후 배열에 추가한다.
🔆백준 코딩 8958번🔆
'STUDY > Algorithm' 카테고리의 다른 글
[백준코딩_파이썬] 1316번_그룹 단어 체커 (0) | 2022.04.03 |
---|---|
[백준코딩_파이썬] 2581번_소수의 합과 최솟값 (0) | 2022.03.30 |
[백준코딩_파이썬] 2893번_설탕배달 (0) | 2022.03.28 |
[백준코딩_파이썬] 10951번_A+B / 종결규칙이 없는경우 (0) | 2022.03.26 |
[백준코딩_파이썬] 1065번_한수 개수 구하기 (0) | 2022.03.09 |