티스토리 뷰
풀이과정
문자열 문제라는건 문제만 봐도 아는 사실이고, 이를 찾기위해 처음에는 이런 형태로
if (s1.find(s2) != std::string::npos) {
std::cout << "found!" << '\n';
}
npos를 써서 체크하려 했지만 npos는 정확히 매칭되는 거만 찾지 문제에 나와있듯에 KOIOI에서 KOI가 한번 IOI가 한번 나와줘야 정상인데 npos를 쓴다면 KOI가 한번밖에 나오지 않음.
따라서 substring을 3글자씩 떼준다음 시작인덱스를 하나씩 늘려가는 방법으로 풀어내야함.
코드
#include <iostream>
using namespace std;
int main(){
string s;
cin >> s;
string ioi = "IOI";
int icount = 0;
string koi = "KOI";
int kcount = 0;
for (int i = 0; i < s.size(); i++){
string sub = s.substr(i, 3);
if (sub == ioi){
icount++;
}else if (sub == koi){
kcount++;
}
}
cout << kcount << '\n' << icount;
}
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 문자사각형
- 몇번째조합
- 1338
- 1304
- 2604
- 백준
- N과M
- 단어집합2
- 문자열찾기
- 3427
- 1535
- 15652
- 24954
- 15651
- 15650
- 15654
- 트리 순회
- 연필공장
- 정올
- 2857
- 5545
- 세로읽기
- 색종이(중)
- 볼모으기
- 문자삼각형1
- 8129
- 숫자사각형3
- 1438
- 색종이(초)
- 볼 모으기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함