-
백준 3059번: 등장하지 않는 문자의 합문자열(String) 2018. 7. 20. 17:54반응형
https://www.acmicpc.net/problem/3059
1. 문제
알파벳 대문자로 구성되어있는 문자열 S가 주어졌을 때, S에 등장하지 않는 알파벳 대문자의 아스키 코드 값의 합을 구하는 프로그램을 작성하시오.
문자열 S가 “ABCDEFGHIJKLMNOPQRSTUVW” 일 때, S에 등장하지 않는 알파벳 대문자는 X, Y, Z이다. X의 아스키 코드 값은 88, Y는 89, Z는 90이므로 이 아스키 코드 값의 합은 267이다.
2. 알고리즘
키워드 - 문자열
접근법 - 중복되는 알파벳이 들어 올수 있다는 것에 유의 하자.
3. 코드
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#include <iostream>#include <sstream>#include <string>#include <algorithm>#include <functional>#include <vector>#include <list>#include <queue>#include <deque>#include <map>#include <set>#include <stack>#include <cstring>#include <math.h>using namespace std;#define MAX_SIZE 100#define INF 0x7fffffff#define CENDL "\n"#define ll long longint main() {cin.tie(0);std::ios::sync_with_stdio(false);int sum = 0;for (int i='A'; i<='Z'; i++) {sum += i;}int t; cin >> t;while(t--) {int cand = sum;string s; cin >> s;// 입력 받은 문자열에서 중복 요소를 제거 한다.sort(s.begin(), s.end());s.erase(unique(s.begin(), s.end()), s.end());const int size = s.size();for (int i=0; i<size; i++) {cand = cand - s[i];}cout << cand << CENDL;}return 0;}cs 반응형'문자열(String)' 카테고리의 다른 글
백준 13163번: 닉네임에 갓 붙이기 (0) 2018.07.27 백준 2703번: Cryptoquote (0) 2018.07.27 백준 2957번: 창영이의 일기장 (0) 2018.07.19 백준 2902번: KMP는 왜 KMP일까? (0) 2018.07.03 백준 2675번: 문자열 반복 (0) 2018.07.03