잡다한 시도/코테 준비는 하는거니?

[BOJ] 2941번: 크로아티아 알파벳

GGOBOOGI 2018. 11. 18. 21:49
반응형

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



2018-11-18 1차시도 - 맞았습니다


#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
string input;
cin >> input;
int ans = 0;

vector<string> change = {"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="};

for (int i = 0; i < input.size(); i++)
{
if (i + 1 < input.size())
{
string compare2 = input.substr(i, 2);
string compare3;
if (i + 2 < input.size())
{
compare3 = input.substr(i, 3);
}
else
compare3 = "null";

if (find(change.begin(), change.end(), compare3) != change.end())
{
ans++;
i += 2;
continue;
}
else if (find(change.begin(), change.end(), compare2) != change.end())
{
ans++;
i++;
continue;
}
}
ans++;
}
cout << ans << endl;
}


그냥 생각나는 방법으로 두세개씩 끊어서 그게 문제에 나온 거기에 있으면 어떻게 하고 없으면 어떻게 하고 이렇게 품. 다른분들은 코드 길이 엄청 짧던데 어떻게 푼건지 궁금하다. 조금 더 고민해봐야겠다.


  • 문자열 자르기

    원본문자열.substr(시작 인덱스, 시작 인덱스부터 몇 개 자를건가요);

    ex) input.substr(i,3)하면 i포함 3글자 자르기!


반응형