반응형
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글자 자르기!
반응형
'잡다한 시도 > 코테 준비는 하는거니?' 카테고리의 다른 글
[BOJ] 2875번: 대회 or 인턴 (0) | 2019.03.30 |
---|---|
[BOJ] 11721번: 열 개씩 끊어 출력하기 (0) | 2018.11.19 |
[BOJ] 1764번: 듣보잡 (0) | 2018.11.18 |
[BOJ] 16499번: 동일한 단어 그룹화하기 (0) | 2018.11.18 |
[BOJ] 7785번: 회사에 있는 사람 (0) | 2018.11.18 |