안녕하세요. 오늘은 사탕의 개수를 셀 거예요.

문제

https://www.acmicpc.net/problem/2508

아이디어

일단 o를 찾습니다.
그리고 위아래로 ^ 와 v인지, 양옆으로 > 와 <인지 확인해주면 됩니다.

소스코드

#include <iostream>
#include <string>
#define ll long long
using namespace std;

int main(void)
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    ll T, N, M, i, j, cnt;
    string s[444];

    cin >> T;
    while (T--)
    {
        cin >> N >> M;
        for (i = 0; i < N; i++) cin >> s[i];

        cnt = 0;
        for (i = 0; i < N; i++)
        {
            for (j = 0; j < M; j++)
            {
                if (s[i][j] == 'o')
                {
                    if (i != 0 && i != N - 1 && s[i - 1][j] == 'v' && s[i + 1][j] == '^') cnt++;
                    else if (j != 0 && j != M - 1 && s[i][j - 1] == '>' && s[i][j + 1] == '<') cnt++;
                }
            }
        }

        cout << cnt << "\n";
    }
}


감사합니다.

0개의 댓글