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

 

이번에 볼 문제는 백준 18129번 문제인 이상한 암호코드이다.
문제는 아래 링크를 확인하자.

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

 

18129번: 이상한 암호코드

가톨릭대학교에 살고 있는 고양이 황톨릭은 이웃집 고양이 엄컴공을 좋아한다. 엄컴공은 알파벳으로만 이루어진 문자열을 이상한 암호로 바꾸는 일을 하고 있다. 이상한 암호로 바꾸기 위해선

www.acmicpc.net

주어진 문자열을 읽으며 각 같은 알파벳으로 이루어진 구간에 대해 문제에 주어진 조건대로 0 또는 1을 출력해 문제를 해결하자.

 

각 알파벳은 대문자와 소문자를 구분하지 않는다는 문제 조건에 유의하자. toupper 등의 함수를 이용하면 구현을 편리하게 할 수 있다.

 

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

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

int K;
string s;
bool visited[128];

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

	visited['#'] = 1;

	cin >> s >> K;
	s += '#';

	char old = '#';
	int combo = 0;
	for (auto& l : s) {
		l = toupper(l);
		if (l != old) {
			if (!visited[old]) {
				if (combo >= K) cout << 1;
				else cout << 0;
				visited[old] = 1;
			}
			old = l, combo = 1;
		}
		else combo++;
	}
}
728x90

+ Recent posts