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

 

이번에 볼 문제는 백준 33135번 문제인 Append and Panic!이다.
문제는 아래 링크를 확인하자.

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

 

새로 추가된 문자의 개수는 기존에 있던 문자열에 있던 문자의 가짓수와 같으며, 새로 추가된 문자는 기존에 있던 문자의 집합과 같으므로 바뀐 문자열에 포함된 문자의 가짓수는 기존에 있던 문자열의 문자의 가짓수와 같다는 점을 관찰하자.

 

따라서 주어진 문자열의 서로 다른 문자의 개수를 세어 문자열의 길이에서 그 값을 빼는 것으로 문제를 해결할 수 있다.

 

표준 라이브러리의 std::string을 이용하여 구현을 편하게 하자.

 

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

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

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

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

    cin >> s; ans = s.length();
    for (auto &l:s) {
        if (visited[l]) continue;
        visited[l] = 1, ans--;
    }

    cout << ans;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 33162 // C++] 散歩 (Walking)  (0) 2025.01.14
[BOJ 33161 // C++] 鉛筆 2 (Pencils 2)  (0) 2025.01.13
[BOJ 33134 // C++] Road Network  (0) 2025.01.09
[BOJ 32925 // C++] Just Half is Enough  (0) 2025.01.08
[BOJ 33085 // C++] Stock Market  (0) 2025.01.07

+ Recent posts