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

 

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

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

 

25813번: Changing Strings

There is only one input line; it contains a string of uppercase letters. The string will have at least 3 and at most 50 characters.

www.acmicpc.net

주어진 문자열의 가장 왼쪽에 등장하는 'U'와 가장 오른쪽에 등장하는 'F'의 위치를 찾아내고, 그 두 지점을 기준으로 '-'와 'C'를 채워넣는 것으로 문제를 해결할 수 있다.

 

그러한 'U'와 'C'의 위치는 반복문을 이용해 간단히 구할 수 있다.

 

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

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

int slen;
string s;

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

	cin >> s; slen = s.length();
	int L = 0, R = slen - 1;
	for (; L < slen; L++) {
		if (s[L] == 'U') break;
		s[L] = '-';
	}
	for (; R > -1; R--) {
		if (s[R] == 'F') break;
		s[R] = '-';
	}
	for (int i = L + 1; i < R; i++) s[i] = 'C';

	cout << s;
}
728x90

+ Recent posts