반응형
https://www.acmicpc.net/problem/13019
13019번: A를 B로
첫째 줄에 A, 둘째 줄에 B가 주어진다. 두 문자열의 길이는 같으며, 길이는 50을 넘지 않는다. 또, 알파벳 대문자로만 이루어져 있다.
www.acmicpc.net
#문제 간단 정리
문제의 핵심은 A 문자열에서 한 문자를 선택하여 문자열의 가장 앞으로 가져오는 방식으로 B 문자열을 만드는 것입니다. 그러기 위해 최소한으로 문자열을 바꿔야 하는 횟수를 찾아야 합니다. 만약 A 문자열을 B 문자열로 변경할 수 없는 경우 -1을 출력해야 합니다.
#전체 코드
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
string A, B;
cin >> A >> B;
int ans = 0;
int B_index = B.length() - 1;
for (int i = A.length()-1; i >= 0; i--) {
if (A[i] == B[B_index]) {
B_index --;
}
else ans++;
}
sort(A.begin(), A.end());
sort(B.begin(), B.end());
if (A == B) cout << ans;
else cout << -1;
return 0;
}
반응형
'[백준] > C++' 카테고리의 다른 글
백준 1149번 RGB거리 [C++] (0) | 2023.09.17 |
---|---|
백준 11726번 2xn 타일링 [C++] (0) | 2023.09.17 |
백준 7576번 토마토 [C++] (0) | 2023.09.14 |
백준 7562번 나이트의 이동 [C++] (0) | 2023.09.14 |
백준 1018번 체스판 다시 칠하기 [C++] (0) | 2023.09.06 |