-
[백준] 8958번: OX퀴즈코딩(Coding)/백준 문제풀이 2020. 12. 24. 09:48728x90
OX퀴즈
문제
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
해당 문제는 OX결과를 문자열로 받으면 해당 문자열을 읽어서 연속된 O는 점수가 늘어나게하고 X가 나오면 다시 0점을 주고 다시 1로 점수를 세게끔... 그냥 문제 그대로 알고리즘을 구현하면 되는 쉬운문제이다.
나는 그냥 combo라는 변수를 선언해서 그 값만큼 더해주고 combo += 1로 연속된 점수에대한 갱신을 적용하였다. 아래는 해당 문제에 대한 코드이다.
""" 백준 알고리즘 8958번: OX 퀴즈 https://www.acmicpc.net/problem/8958 """ def calc(n): result = [] # 점수를 담은 리스트 선언 for i in range(n): answer = input() # OX를 입력 받음 combo = 0 # 연속으로 맞힐 수록 +1 sum = 0 # 최종적인 점수를 저장 할 변수 for cho in answer: # X일 경우는 combo를 0로 초기화 if cho == 'X': combo = 0 # O일 경우 combo를 1만큼 늘리고 점수에 더해줌 elif cho == 'O': combo += 1 sum += combo result.append(sum) #연산을 마치면 리스트에 담음 return result def main(): n = int(input()) result = calc(n) for r in result: print(r) if __name__=="__main__": main()
해당 문제는 그냥 문제에서 설명대로 구현만 하면 되는 쉬운 문제인것 같다.
728x90'코딩(Coding) > 백준 문제풀이' 카테고리의 다른 글
[백준] 10174번: 팰린드롬 (0) 2020.12.29 [백준] 1037번: 약수 (0) 2020.12.28 [백준] 17608번: 막대기 (0) 2020.12.24 [백준] 4673번: 셀프 넘버 (0) 2020.12.23 [백준] 1712번: 손익분기점 (0) 2020.12.22