안녕하세요. 오늘은 초콜릿 중독을 주의할 거예요.

문제

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

아이디어

두가지 경우로 나눕시다.
1.맨 앞에 있는 !의 개수
2.(숫자)(뒤느낌표)가 의미하는 수
1번은 간단히 됩니다.
2는 생각보다 간단합니다. (숫자)가 0이고 (뒤느낌표)가 0개이면 0, 아니면 1입니다. 즉, s의 맨 마지막 문자가 0이면 0, 아니면 1입니다.
이 두개를 가지고 잘 하면 됩니다.

소스코드

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

int main()
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    ll N, i;
    string s;

    cin >> N;
    while (N--)
    {
        cin >> s;
        ll idx = 0;
        for (i=0;;i++) 
            if (s[i] != '!')
            {
                idx = i;
                break;
            }
        cout << !((idx % 2 == 0) == (s[s.length() - 1] == '0')) << "\n";
    }
}


감사합니다.

0개의 댓글