※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 24184번 문제인 Arabiska이다.
문제는 아래 링크를 확인하자.

https://www.acmicpc.net/problem/24184 

 

24184번: Arabiska

Den första raden inehåller ett heltal $N$ ($1 \le N \le 5$), antalet ord i meningen. Den andra raden innehåller $N$ ord, där varje ord består av maximalt 10 gemena bokstäver från det latinska alfabetet (a till z).

www.acmicpc.net

입력으로 주어지는 각 단어들을 (1) short vowel을 제거하고 (2) 알파벳 순서를 뒤집어 (3) 입력으로 주어진 역순으로 출력해 문제를 해결하자.

 

이 문제에서는 'y' 또한 모음임에 유의하여 구현하자.

 

아래는 제출한 소스코드이다.

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

int N;
vector<string> stk;

bool vowel[128];

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	vowel['a'] = vowel['e'] = vowel['i'] = vowel['o'] = vowel['u'] = vowel['y'] = 1;

	cin >> N;
	while (N--) {
		string s, tmp = ""; cin >> s;
		int slen = s.length();
		for (int i = 0; i < slen; i++) {
			if (vowel[s[i]]) {
				if (i + 2 >= slen || (vowel[s[i + 1]] || vowel[s[i + 2]])) tmp += s[i];
			}
			else tmp += s[i];
		}
		reverse(tmp.begin(), tmp.end());
		stk.emplace_back(tmp);
	}

	while (!stk.empty()) {
		cout << stk.back() << ' ';
		stk.pop_back();
	}
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 26943 // C++] Turnering  (0) 2023.01.11
[BOJ 18154 // C++] Speeding  (0) 2023.01.11
[BOJ 26948 // C++] Plankan  (0) 2023.01.11
[BOJ 26944 // C++] Uppställning  (0) 2023.01.11
[BOJ 26942 // C++] Gruppindelning  (1) 2023.01.11

+ Recent posts