STUDY/Algorithm

[백준코딩_파이썬] 8958번_OX 퀴즈

ez1n 2022. 3. 24. 13:48

[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번🔆

 

👉ez1n github 구경하기👈

 

 

 

ez1n - Overview

Study -ing. ez1n has 6 repositories available. Follow their code on GitHub.

github.com