기준 이름표 base와 길이가 같은 이름표들이 있어요. 정확히 한 위치의 문자를 다른 소문자로 바꾸어 base와 같게 만들 수 있는 이름표의 수를 구해요. 문자를 넣거나 지울 수는 없어요. 이미 같은 이름표는 고칠 필요가 없어서 세지 않아요. 같은 이름표가 반복되면 각각 별도로 세어요.
int solution(string base, vector<string> labels)가 요구한 값을 반환하도록 함수를 작성해 주세요.
매개변수와 반환값
base의 길이 L은 130, labels의 길이는 0100이에요. 모든 이름표의 길이는 L과 같고 영어 소문자로만 이루어져 있어요. 반환값은 고칠 수 있는 이름표 수로 0~labels.size()예요.
예시
base="cat", labels={"cat", "bat", "car", "dog"}이면2를 반환해요. bat와 car는 한 위치만 달라 고칠 수 있어요. cat은 이미 같고 dog는 세 위치가 달라요.base="a", labels={"a", "b", "c", "b"}이면3를 반환해요. b·c·b 세 이름표는 한 글자를 바꾸면 같아져요. 반복된 b도 두 번 세어요.
실행용 입출력
첫 줄에 이름표 수 n, 둘째 줄에 base, 이후 n줄에 이름표를 입력해요. main은 입력을 매개변수로 바꾸고 반환값을 출력하는 채점 하네스예요. 풀이 대상은 solution 함수예요.
예시 입력
4 cat cat bat car dog
예상 결과
2
예시 입력
4 a a b c b
예상 결과
3
핵심 개념
stl-string: 문자 위치와 문자열의 길이를 읽어요.conditionals: 조건과 정확한 경계를 판별해요.stl-vector: 벡터의 크기와 인덱스로 매개변수를 읽어요.