RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
R02092

문자열 치환 공장

Bronze I 브론즈 I
난이도
2s
시간 제한
256MB
메모리 제한
0
맞았습니다!!
0
제출 수
0.0%
정답률
레이팅

의견: 0

설명

문자열 치환 공장은 원본 문자열 \(S\) 안에서 짧은 조각 \(P\)가 나타나는 곳을 모두 찾아 다른 조각 \(Q\)로 바꾼다.

치환은 문자열의 왼쪽부터 진행한다. \(P\)와 일치하는 부분을 만나면 그 부분을 \(Q\)로 바꾸고, 바꾼 부분의 바로 다음 위치에서부터 다시 \(P\)를 찾는다. (즉 겹치지 않게, 왼쪽에서 오른쪽으로 한 번에 훑어 치환한다. 새로 만들어진 글자들은 다시 검사하지 않는다.)

예를 들어 \(S = \) aaaa, \(P = \) aa, \(Q = \) b이면, 앞에서부터 두 글자씩 aa를 b로 바꾸어 결과는 bb가 된다.

\(S\), \(P\), \(Q\)가 주어질 때 치환 결과를 출력하여라.

제약

\(1 \le |S| \le 100\,000\), \(1 \le |P| \le |S|\), \(1 \le |Q| \le 10\)이며, \(S\), \(P\), \(Q\)는 모두 알파벳 소문자로만 이루어져 있다.

입력 형식

첫째 줄에 원본 문자열 \(S\)가, 둘째 줄에 찾을 조각 \(P\)가, 셋째 줄에 바꿀 조각 \(Q\)가 주어진다.

출력 형식

\(S\)에서 \(P\)를 모두 \(Q\)로 치환한 문자열을 출력한다.

예제 1
입력
ababab
ab
X
출력
XXX
설명

ab가 나오는 자리 세 곳을 모두 X로 바꾸면 XXX가 된다.

예제 2
입력
hello
l
L
출력
heLLo
설명

두 개의 l이 각각 L로 바뀌어 heLLo가 된다.

문제 정보

riseoj 작성

출처 Original

평가 및 의견

문자열 치환 공장

개요
출제자 난이도 Bronze I 브론즈 I 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

문자열 치환 공장

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8