티스토리 뷰

Algorithm/BOJ

백준 1120번 C++

poopooreum 2023. 7. 21. 18:41
반응형

백준 1120번 문자열
https://www.acmicpc.net/problem/1120

1120번: 문자열

길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의

www.acmicpc.net



#include<iostream>
#include<string>
using namespace std;
int main() {
	string a, b,c;
	cin >> a >> b;
	int count = 0,flag,min=999;
	if (a.length() == b.length()) {
		for (int x = 0; x < a.length(); x++) {
			if (a[x] != b[x])
				count++;
		}
	}
	else {
		for (int x = 0; x <= b.length() - a.length(); x++) {
			flag = 0;
			for (int y = 0; y < a.length(); y++) {
				if (a[y] != b[x+y]) {
					flag++;
				}
			}
			if (flag < min) {
				min = flag;
			}
		}
		count = min;

	}
	cout << count;
}


문제 풀이
우선 경우의 수를 나눠야 합니다. a와b의 길이가 같을 때와 같지 않을 때입니다. 길이가 같을 때는 다른 문자의 개수를 세서 리턴해주면 됩니다. 길이가 다를 때에는
b의 길이가 더 긴 경우이고 이중 반복문을 사용합니다. a문자열을 b문자열 길이 안에서 돌려주면서 다른 문자의 개수를 각각 구해서 최솟값을 구하여 출력합니다.

반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 1152번 C++  (0) 2023.07.21
백준 1124번 C++  (0) 2023.07.21
백준 1110번 C++  (0) 2023.07.21
백준 1094번 C++  (0) 2023.07.21
백준 1085번 C++  (0) 2023.07.21
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함