/*
#include <iostream>
#include <string>
using namespace std;
int main()
{
string a = "asd";
string b = "ert";
string c = a + b;
cout << c;
//string 클래스+문자열 =ok
//문자열+문자열=no
return 0;
}
*/
//문자찾고 OX출력
/*
#include <iostream>
#include <string>
using namespace std;
int main()
{
string map[4] = {
"ABBT",
"BTBT",
"BBBT",
"KFC"
};
for (int i = 0; i < 4; i++) {
if (map[i].find("BB") != -1) {
cout << "O";
}
else cout << "X";
}
return 0;
}
*/
//역순출력***
/*
#include <iostream>
#include <string>
using namespace std;
int main()
{
string map[4] = {
"ABBT",
"BTBT&",
"BBBT",
"KFC"
};
int len;
for (int i = 0; i < 4; i++) {
for (int j = map[i].length() - 1; j >= 0; j--) {
cout << map[i][j];
}
cout << endl;
}
return 0;
}
*/
//파싱을 위한 두번째 준비 substr
/*
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "dkjhfe";
string ret = str.substr(2, 4); //2번 index부터 4글자 뽑기
cout << ret;
return 0;
}
*/
/*substr 예제
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
for (char i = 'A'; i <= 'Z'; i++) {
str += i;
}
int a, b;
cin >> a >> b;
//a index 부터 b index까지 출력
//사이즈 만들기
int size = b - a + 1;
cout << str.substr(a, b - a + 1);
return 0;
}
*/
//모르겠음 파싱예제..
/* 모르겠음 파싱예제..
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
cin >> str;
int index1, index2;
index1 = str.find("[");
index2 = str.find("]");
int size = index2 - index1;
string ret = str.substr(index1+1, size+1);
cout << ret;
return 0;
}*/
//파싱 예제 2(함수 사용하기)
/*
#include <iostream>
#include <string>
using namespace std;
string go(string str) {
if (str.find("[") == -1) return "";
int a = str.find("[");
int b = str.find("]");
int size = b - a - 1;
string ret = str.substr(a + 1, size);
return ret;
}
int main()
{
string map[4] = {
"ABCQ",
"B[4]R",
"CCDA",
"BT[15]"
};
for (int y = 0; y < 4; y++) {
cout << go(map[y]);
}
return 0;
}
*/
//stoi,to_string 암기***
/*
#include <iostream>
#include <string>
using namespace std;
int main()
{
string st = "1234";
int i = stoi(st);
cout << i;
int v = 234;
string a = to_string(v);
cout << a;
}
*/
//파싱 예제3 (있는게 뒤에 또 있음)
/*
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "B[45]AB[9994]";
int a = str.find("[");
int b=str.find("]");
int c=str.find("[",b+1);
int d=str.find("]",c+1);
string t1 = str.substr(a + 1, b - a + 1);
string t2 = str.substr(c + 1, d - c + 1);
int e = stoi(t1);
int f = stoi(t2);
cout <<e+f;
return 0;
}
*/
//a,b 두개로
/*
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "ABCAAABCAAABCA";
int cnt = 0;
int a = 0;
int b = 0;
while(1){
a = str.find("ABC", b);
b = a + 1;
if (a == -1) break;
cnt++;
}
cout << cnt;
return 0;
}
//a로만
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "ABCAAABCAAABCA";
int cnt = 0;
int a = 0;
while (1) {
a = str.find("ABC", a);
if (a == -1) break;
cnt++;
a += 1;
}
cout << cnt;
return 0;
}*/
//gold 개수 찾기
#include <iostream>
#include <string>
using namespace std;
int go(string str) {
int cnt = 0;
int a = 0;
while (1) {
a = str.find("GOLD", a);
if (a == -1) break;
cnt++;
a += 1;
}
return cnt;
}
int main()
{
string map[4] = {
"GOLDABGOLD",
"GOLDTTTT",
"AGOLDGOLD",
"GOLDTTTT"
};
int cnt = 0;
for (int i = 0; i<4; i++) {
cnt += go(map[i]);
}
cout << cnt;
return 0;
}
맨위로
하세요