프로그래밍/알고리즘

BOJ 16755 · Magnus

반응형


알고리즘 분류 : 문자열 처리  


문자열에서 HONI의 개수를 출력하는 문제다. 인덱스 0부터 시작해서 문자열의 길이까지 순서대로 이동하면서 다 찾아보면 된다.




C++ 소스코드


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

string s;
char honi[] = "HONI";

void solve() {
    int k = 0, ans = 0;
    for (int i=0; i<(int)s.size(); i++) {
        if (s[i] == honi[k]) k++;
        if (k == 4) {
            k = 0;
            ans++;
        }
    }
    cout << ans << '\n';
}

int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    cin >> s;
    solve();
    return 0;
}




Python 3 소스코드


from sys import stdin
s = stdin.readline().strip()
k, ans = 0, 0
honi = "HONI"
for i in range(len(s)):
    if s[i] == honi[k]:
        k += 1
    if k == 4:
        ans += 1
        k = 0
print(ans)




참고



반응형