반응형
https://www.acmicpc.net/problem/9946
문제
두개의 문자열을 입력하여 같은 문자들로 이루어지면 same, 아니면 different를 출력하는 문제
예제 입력 1 복사
testing
intestg
abc
aabbbcccc
abcabcbcc
aabbbcccc
abc
xyz
END
END
예제 출력 1 복사
Case 1: same
Case 2: different
Case 3: same
Case 4: different
코드
#include <iostream>
#include <string>
#include <vector> // vector
#include <algorithm> // sort
using namespace std;
int main() {
string str,str1;
// Case k:
int k=1;
while(true){
// str, str1 두개의 문자열이 다 END이면 끝나는 코드
cin>>str>>str1;
if(str=="END"&&str1=="END"){
break;
}
vector<char> vec;
vector<char> v;
for(int i=0; i<str.length(); i++){
char c = str[i];
vec.push_back(c);
}
for(int j=0; j<str1.length(); j++){
char ch = str1[j];
v.push_back(ch);
}
// str = aabbbcccc
// str1 = abcabcbcc
// 입력받은 두개의 문자열을 알파벳순(오름차순)으로 정렬한다.
sort(vec.begin(), vec.end());
sort(v.begin(), v.end());
// sort -> str = aabbbcccc
// sort -> str1 = aabbbcccc
int cnt=0;
// 두개의 문자열의 길이가 서로 다르면 애초에 다른 문자열이기 때문에
if(vec.size()!=v.size()){
cout<<"Case "<<k<<": different\n";
}
else{
for(int i=0; i<vec.size(); i++){
if(vec[i]==v[i]){
cnt++;
}
}
if(cnt==vec.size()){
cout<<"Case "<<k<<": same\n";
}
else{
cout<<"Case "<<k<<": different\n";
}
}
// Case k++
k++;
}
return 0;
}
|
cs |
정리
사실 이 문제는 두개의 문자열을 sort(오름차순)를 해서 각 문자가 맞는지 맞지 않는지만 판단하면 된다.
반응형
'백준 > C++' 카테고리의 다른 글
[BaeKJoon/C++] 백준 11586 c++ 지영 공주님의 마법 거울 (0) | 2022.02.25 |
---|---|
[BaeKJoon/C++] 백준 11047 c++ 동전 0 (0) | 2022.02.24 |
[BaeKJoon/C++] 백준 8974 c++ 희주의 수학시험 (0) | 2022.02.22 |
[BaeKJoon/C++] 백준 3047 c++ ABC (0) | 2022.02.21 |
[BaeKJoon/C++] 백준 11637 c++ 인기투표 (0) | 2022.02.20 |