소감 ¶
2005/02/19 Accepted 0:00.002 64
ASCII 코드를 이용하여 소문자를 0~26의 숫자로 인코딩시켰다. 그 인코딩 숫자를 이용한 배열을 만들어서 그 배열끼리 비교를 해서 공통된 변경 문자열을 쉽게 만들수 있었다.
ASCII 코드를 이용하여 소문자를 0~26의 숫자로 인코딩시켰다. 그 인코딩 숫자를 이용한 배열을 만들어서 그 배열끼리 비교를 해서 공통된 변경 문자열을 쉽게 만들수 있었다.
코드 ¶
~cpp // no10252 - Common Permutation #include <iostream> #include <cstring> using namespace std; const int MAX = 1000; int main() { char str[MAX+1]; int first[26], second[26]; int len, min, count; int i, j; while (cin.getline(str, MAX+1, '\n')) { /* 입력 */ for (i=0; i<26; i++) first[i] = second[i] = 0; len = strlen(str); for (i=0; i<len; i++) first[str[i]-97]++; cin.getline(str, MAX+1, '\n'); len = strlen(str); for (i=0; i<len; i++) second[str[i]-97]++; /* 변경 문자열 찾기 */ count = 0; for (i=0; i<26; i++) { if (first[i] == 0 || second[i] == 0) continue; if (first[i] < second[i]) min = first[i]; else min = second[i]; for (j=0; j<min; j++) str[count++] = i + 97; } str[count] = '\0'; cout << str << endl; } return 0; }