C#

백준 C# 8958 문제 풀이

psb08 2024. 9. 15. 16:42
728x90

문제 링크 : https://www.acmicpc.net/problem/8958

 

백준 브론즈 2 문제 입니다.

 

내 코드

int _int = int.Parse(Console.ReadLine());

int _combo = 0;
int _score = 0;

for (int i = 0; i < _int; i++)
{
    string _str = Console.ReadLine();

    for (int j = 0; j < _str.Length; j++)
    {
        if (_str[j] == 'O')
        {
            ++_combo;
            _score += _combo;
        }
        else
        {
            _combo = 0;
        }
    }

    Console.WriteLine(_score);

    _combo = 0;
    _score = 0;
}

 

 

코드 풀이 해석 내용

 

int _int = int.Parse(Console.ReadLine());

입력받은 값을 정수로 변환하여 _int 변수에 저장합니다.

이 값은 이후 반복문에서 사용할 입력 문자열의 갯수를 나타냅니다.

 

int _combo = 0;
int _score = 0;

점수를 저장할 _score와 연속된 'O'의 개수를 저장할 _combo를 0으로 초기화합니다.

 

for (int i = 0; i < _int; i++)
{
    string _str = Console.ReadLine();
    ...
}

_int의 값만큼 반복하여 각 문자열을 입력 받습니다.

 

for (int j = 0; j < _str.Length; j++)
{
    if (_str[j] == 'O')
    {
        ++_combo;
        _score += _combo;
    }
    else
    {
        _combo = 0;
    }
}

입력돤 문자열의 각 문자에 대해서 반복합니다.

 

문자가 'O'일 경우 : 

           _combo의 값을 1 증가시키고, 현재 조합 수만큼 점수를 _score에 더합니다.

문자가 'X'일 경우 : 

           _combo를 0으로 초기화합니다.

 

Console.WriteLine(_score);

현재 문자열에 대한 최종 점수를 출력합니다.

 

_combo = 0;
_score = 0;

다음 문자열을 처리하기 위해 _combo와 _score를 다시 0으로 초기화 시킵니다.

 

 

실행 결과

 

실행 결과

 

728x90

'C#' 카테고리의 다른 글

백준 C# 1181 문제 풀이  (0) 2024.09.16
백준 C# 2839 문제 풀이  (0) 2024.09.16
백준 C# 2920 문제 풀이  (0) 2024.09.15
백준 C# 10250 문제 풀이  (0) 2024.09.15
백준 C# 2231 문제 풀이  (0) 2024.09.13