250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(SWEA c++)7272. 안경이 없어! 본문
728x90
반응형
전역변수로 알파벳 개수인 26 길이의 배열을 선언하여 구멍의 개수를 저장한다.
두 문자열을 입력받고 서로를 비교.
만약 두 문자열의 길이가 같지 않다면 바로 "DIFF"를 출력하여 끝내도록 한다.
아니라면 두 문자열을 하나씩 비교하면 된다.
둘 중 하나의 사이즈만큼 for문을 돌면서,
구멍의 개수가 1개면
tmpA, tmpB에 "1"을 추가.
구멍의 개수가 2개면
tmpA, tmpB에 "2"를 추가.
구멍의 개수가 0개면
tmpA, tmpB에 "0"을 추가.
이렇게 하여 두 문자열이 같으면 "SAME"을 출력하고,
다르다면 "DIFF"를 출력하면 된다.
구멍의 개수가 같은 것을 찾는 게 아니라,
구멍의 개수로 문자열을 새로 만들어서 비교하는 것이 핵심이다.
#include <iostream>
#include <string>
using namespace std;
const int hole[26] = {1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0};
int main(void)
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t;
cin >> t;
for(int tc = 1; tc <= t; tc++)
{
string a, b, tmpA = "", tmpB = "";
bool check = false;
int aCount = 0, bCount = 0;
cin >> a >> b;
if(a.size() != b.size())
{
cout << "#" << tc << " DIFF" << endl;
continue;
}
else
{
for(int j = 0; j < a.size(); j++)
{
if(hole[a[j] - 'A'] == 1)
tmpA += "1";
else if(hole[a[j] - 'A'] == 0)
tmpA += "0";
else
tmpA += "2";
if(hole[b[j] - 'A'] == 1)
tmpB += "1";
else if(hole[b[j] - 'A'] == 0)
tmpB += "0";
else
tmpB += "2";
}
}
cout << "#" << tc << " ";
if(tmpA == tmpB)
cout << "SAME" << endl;
else
cout << "DIFF" << endl;
}
return 0;
}
728x90
반응형
'SW Expert Academy' 카테고리의 다른 글
(SWEA c++)7532. 세영이의 SEM력 연도 (0) | 2020.11.25 |
---|---|
(SWEA c++)7510. 상원이의 연속 합 (0) | 2020.11.25 |
(SWEA c++)7193. 승현이의 수학공부 (0) | 2020.11.24 |
(SWEA c++)7102. 준홍이의 카드놀이 (0) | 2020.11.23 |
(SWEA c++)7087. 문제 제목 붙이기 (0) | 2020.11.23 |