[백준/C++] 3059 - 등장하지 않는 문자의 합

orangesnail·2025년 7월 29일

백준

목록 보기
121/169

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


구현하기

각 테스트 케이스마다 다음의 로직을 반복해야 한다:

  1. 알파벳 길이만큼의 bool 배열을 만들고, 입력받은 문자열을 순회하면서 a~z까지의 알파벳 글자가 등장했는지 등장하지 않았는지를 저장해둔다. 이때 알파벳의 아스키코드는 A 65부터 시작하는데 배열의 인덱스는 0부터 시작하므로, abc[s[i] - 'A'] 이런식으로 뺄셈을 이용해 인덱스를 계산해주어야 한다.
  2. 그 다음 합을 저장할 변수를 하나 만들어두고 알파벳 배열을 차례대로 확인하면서, 등장하지 않은 알파벳이 있다면 합 변수에 아스키코드 값 'A' + i 를 더해준다.

전체 코드

#include <iostream>
using namespace std;

int main() {
    int t;
    cin >> t;

    for (int i = 0; i < t; i++) {
        string s;
        cin >> s;

        bool abc[26] = {false};

        for (int i = 0; i < s.length(); i++) {
            if (abc[s[i] - 'A'] == 0)
                abc[s[i] - 'A'] = true;
        }

        int count = 0;
        for (int i = 0; i < 26; i++) {
            if (abc[i] == false) count += ('A' + i);
        }
        cout << count << endl;
    }
    return 0;
}
profile
초보입니다. 피드백 환영합니다 😗

0개의 댓글