문제
특정 소문자 문자열 패턴을 대문자 한 글자로 압축하는 프로그램 SPC(String Pattern Compressor)가 있다.
예를 들어, 다음과 같은 방법으로 압축하는 경우, “
”는 “ ”로 압축된다.소문자 문자열 패턴 | 대문자 |
압축 프로그램과 압축된 문자열이 주어지면, 압축되기 전 문자열의 일부를 출력하는 프로그램을 작성하시오.
나의 풀이
이 문제는 나의 C++ 코드 작성 습관을 점검하기 위해서 작성하였다.
- 자주 사용하는 헤더 파일들을 미리 include 해두었다.
- sync_with_stdio, cin.tie, cout.tie 등을 이용해서 입출력 속도를 높였다.
- 반복문은 while(n--), for (int i=0; i<n; i++) 두 가지 방식을 모두 사용한다.
- C++ 에서는 string에 + 연산이 가능하다. (C, C++, JAVA를 모두 골고루 다루다보니 가끔 헷갈릴때가 있다.)
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <cmath>
#include <vector>
#include <set>
#include <list>
#include <stack>
#include <queue>
#include <algorithm>
using namespace std;
int main() {
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
string codeTable[26];
while (n--) {
string origin;
char compress;
cin >> origin >> compress;
codeTable[compress - 'A'] = origin;
}
string code;
cin >> code;
int s, e;
cin >> s >> e;
string result;
for (int i = 0; i < code.length(); i++) {
result += codeTable[code[i] - 'A'];
}
for (int i = s - 1; i < e; i++) {
cout << result[i];
}
}
'Algorithms > PS' 카테고리의 다른 글
[PS] 백준 #16564. 히오스 프로게이머 (0) | 2022.01.17 |
---|---|
[PS] 백준 #19949. 영재의 시험 (0) | 2022.01.17 |
[PS] 백준 #17390. 이건 꼭 풀어야 해! (0) | 2022.01.17 |
[PS] 백준 #4673. 셀프 넘버 (0) | 2022.01.16 |
[PS] C++ 알고리즘 Tip 모음 (0) | 2021.12.27 |