안녕하세요. 오늘은 머신코드를 짤 거예요.
https://www.acmicpc.net/problem/2929
대문자를 포함해서 그 대문자와 그 대문자 뒤에 있는 소문자들의 개수의 합이 4의 배수가 되도록 만들어주어야합니다. x=(그 대문자와 그 대문자 뒤에 있는 소문자들의 개수의 합)이라고 하면 ans+=(4-x%4)%4를 해주면 됩니다. 이때 맨 마지막에도 이 값을 더해주어야한다고 생각할 수 있는데 총 길이가 4의 배수일 필요는 없습니다.
#include <iostream>
#include <string>
#define ll long long
using namespace std;
bool BIG(char c)
{
if ('A' <= c && c <= 'Z') return true;
return false;
}
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
string s;
ll len, i, cnt = 0, ans = 0;
cin >> s; len = s.length();
for (i = 0; i < len; i++)
{
if (BIG(s[i]))
{
ans += (4 - cnt % 4) % 4;
cnt = 0;
}
cnt++;
}
cout << ans;
}
감사합니다.