Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 주어진 문자열의 모음 쌍 개수 세는 방법

문자열이 주어졌을 때, 두 요소가 모두 모음으로 이루어진 쌍의 개수를 계산하는 것이 이번 문제의 목표입니다. 영어 알파벳에는 a, i, e, o, u 다섯 개의 모음이 있으며, 나머지 문자들은 모두 자음으로 분류됩니다.

입력 − string str = "tutorials point"

출력 − 주어진 문자열에서 모음 쌍의 개수: 2

설명 − 주어진 문자열에서 만들 수 있는 쌍은 (t, u), (u, t), (t, o), (o, r), (r, i), (i, a), (a, l), (l, s), (s, p), (p, o), (o, i), (i, n), (n, t)입니다. 이 가운데 두 요소가 모두 모음인 쌍은 (i, a)와 (o, i)뿐이므로, 모음 쌍의 개수는 2가 됩니다.

입력 − string str = "learning"

출력 − 주어진 문자열에서 모음 쌍의 개수: 1

설명 − 주어진 문자열에서 만들 수 있는 쌍은 (l, e), (e, a), (a, r), (r, n), (n, i), (i, n), (n, g)입니다. 이 중 두 요소가 모두 모음인 쌍은 (e, a) 하나뿐이므로, 모음 쌍의 개수는 1이 됩니다.

아래 프로그램에 적용된 접근 방식

  • 문자열 타입 변수에 문자열을 입력받습니다.
  • length() 함수를 사용해 문자열의 전체 길이, 즉 총 문자 수를 계산합니다.
  • 모음 쌍의 개수를 저장할 임시 변수 count를 준비합니다.
  • i를 0부터 문자열 길이까지 순회하는 For 루프를 시작합니다.
  • 루프 내부에서 str[i]가 'a', 'i', 'e', 'o', 'u' 중 하나인지 먼저 확인하고, 참이라면 str[i+1] 역시 'a', 'i', 'e', 'o', 'u' 중 하나인지 검사합니다. 두 조건이 모두 충족되면 count 값을 1 증가시킵니다.
  • 순회가 끝나면 count를 반환합니다.
  • 결과를 화면에 출력합니다.

예제 코드

#include <bits/stdc++.h>
using namespace std;
int count_pairs(string str, int length){
    int count = 0;
    for(int i=0 ;i<length-1; i++){
        if(str[i]=='a' || str[i]=='i'||str[i]=='e'||str[i]=='o'||str[i]=='u'){
            if(str[i+1]=='a'||str[i+1]=='i'||str[i+1]=='e'||str[i+1]=='o'||str[i+1]=='u'){
                count++;
            }
        }
    }
    return count;
}
int main(){
    string str = "tutorials point";
    int length = str.length();
    cout<<"주어진 문자열에서 모음 쌍의 개수: "<<count_pairs(str, length);
    return 0;
}

실행 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다 −

주어진 문자열에서 모음 쌍의 개수: 2