※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 25276번 문제인 Sperhling이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/25276
25276번: Sperhling
On her spare time Caitlin loves to do speed typing. Unfortunately Caitlyn was never good at spelling. So what often happens is that Catelin makes a mistake spelling a word, and has to go back and fix her typo. One word in particular that Caitlynn has a har
www.acmicpc.net
왼쪽 키를 누르고 나중에 다시 오른쪽 키를 눌러 커서를 돌려놓으나 백스페이스를 눌러 문자를 지우고 나중에 다시 각 문자를 입력해넣으나 키를 누르는 횟수는 같다는 점을 관찰하자.
위 관찰에 의해, 기존 상태의 문자열을 "앞에서부터 제대로 친 부분"만을 남기고 모두 지운 후 "올바른 문자열"을 그 뒤로 새로 타이핑하는 것이 최소 횟수로 문자열을 수정하는 방법 중 하나임을 알 수 있다.
두 문자열의 맨 앞에서부터의 공통부분 길이와 각 문자열의 길이를 이용해 문제를 해결하자.
아래는 제출한 소스코드이다.
#include <iostream>
#include <string>
using namespace std;
string s1, s2;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> s1 >> s2; s1 += '.', s2 += '!';
int idx = 0;
while (s1[idx] == s2[idx]) idx++;
cout << s1.length() + s2.length() - idx * 2 - 2;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 27467 // C++] 수학 퀴즈 (0) | 2023.02.20 |
---|---|
[BOJ 1802 // C++] 종이 접기 (0) | 2023.02.19 |
[BOJ 27466 // C++] 그래서 대회 이름 뭐로 하죠 (0) | 2023.02.19 |
[BOJ 16173 // C++] 점프왕 쩰리 (Small) (0) | 2023.02.18 |
[BOJ 1184 // C++] 귀농 (0) | 2023.02.18 |