on
[PS] 백준 23746. 문자열 압축 해제
[PS] 백준 23746. 문자열 압축 해제
문제
특정 소문자 문자열 패턴을 대문자 한 글자로 압축하는 프로그램 SPC(String Pattern Compressor)가 있다.
예를 들어, 다음과 같은 방법으로 압축하는 경우, “$\text{aabbaaac}$”는 “$\text{ABAC}$”로 압축된다.
소문자 문자열 패턴 대문자 $\text{aa}$ $\text{A}$ $\text{bba}$ $\text{B}$ $\text{c}$ $\text{C}$
압축 프로그램과 압축된 문자열이 주어지면, 압축되기 전 문자열의 일부를 출력하는 프로그램을 작성하시오.
나의 풀이
이 문제는 나의 C++ 코드 작성 습관을 점검하기 위해서 글로 작성하고자 하였다. 아래 코드에서 확인할 수 있는 특징들은 다음과 같다.
자주 사용하는 헤더 파일들을 미리 include 해두었다.
sync_with_stdio, cin.tie, cout.tie 등을 이용해서 입출력 속도를 높였다.
반복문은 while(n--), for (int i=0; i
C++ 에서는 string에 + 연산이 가능하다. (C, C++, JAVA를 모두 골고루 다루다보니 가끔 헷갈릴때가 있다.)
#include #include #include #include #include #include #include #include #include #include #include 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]; } }
from http://pongkijoa.tistory.com/6 by ccl(A) rewrite - 2021-12-27 04:02:22