반응형

1. 문제

- [백준 C#] 8958번 OX 퀴즈 (C#)  (https://www.acmicpc.net/problem/8958)

 

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.

 

 

2. 문제 포인트

  • 케이스 수 입력 받기
  • OX결과값을 입력 받기
  • 'X'를 기준으로 문자열을 나눠 각 요소별로 'O'의 연속 개수를 카운팅하여 점수 계산

 

 

반응형

 

 

3. 전체 코드

using System;
using System.Collections.Generic;

namespace B2_08958번
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int cnt = int.Parse(Console.ReadLine());
            int score = 0;

            for (int i= 0; i < cnt; i++)
            {
                // 'X'를 기준으로 리스트를 나누기
                List<string> ans = new List<string>(Console.ReadLine().Split('X'));
                score = 0;

                // 각 요소(연속된 'O'의 묶음)의 개수를 이용해 점수 계산
                for (int j= 0; j < ans.Count; j++)
                {
                    for (int k= 1; k <= ans[j].Length; k++)
                    {
                        score += k;
                    }
                }
                // 입력된 결과같에 대한 점수 출력
                Console.WriteLine(score);
            }
            
        }
    }
}

// 8958번 OX퀴즈
// https://www.acmicpc.net/problem/8958
반응형

+ Recent posts