문자열이 주어지면 각 문자의 오른쪽에 있는 더 큰 요소의 수를 계산해야 합니다. 예를 들어 보겠습니다.
입력
string = "abc"
출력
2 1 0
오른쪽보다 2개의 더 큰 요소가 있습니다.
오른쪽에 b보다 큰 요소가 1개 있습니다.
오른쪽에 c보다 큰 요소가 0개 있습니다.
알고리즘
-
문자열을 초기화합니다.
-
카운트를 추적하기 위해 배열을 초기화합니다.
-
문자열을 반복하는 두 개의 루프를 작성하십시오.
-
한 번에 하나의 문자를 가져와서 그 뒤의 모든 문자와 비교합니다.
-
현재 요소가 다음 요소보다 작으면 count 배열의 해당 문자 수를 증가시킵니다.
-
-
모든 문자의 수를 인쇄합니다.
구현
다음은 위의 알고리즘을 C++로 구현한 것입니다.
Implementation
Following is the implementation of the above algorithm in C++
#include <bits/stdc++.h> using namespace std; void countCharNextLargerElementsCount(string str) { int len = str.length(), count[len]; for (int i = 0; i < len; i++) { count[i] = 0; } for (int i = 0; i < len; i++) { for (int j = i + 1; j < len; j++) { if (str[i] < str[j]) { count[i]++; } } } for (int i = 0; i < len; i++) { cout << count[i] << " "; } cout << endl; } int main() { string str = "abcdefgh"; countCharNextLargerElementsCount(str); return 0; }
출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
7 6 5 4 3 2 1 0