거울문장

hy cho·2021년 11월 17일
0

알고리즘 공부

목록 보기
5/26
post-thumbnail

_두 문장을 입력받으세요 (최대 10글자)

두 문장이 거꾸로 된 문장이 맞는지 확인하는 프로그램을 작성 해 주세요

ex) 예로들어 "ABCD" "DCBA" 를 입력받았다면

ABCD를 거꾸로 하면 DCBA가 맞습니다. 따라서 "거울문장" 이라고 출력 해 주세요

ex) 예로들어 "BKRQA" "ABC"를 입력받았다면

BKRQA를 거꾸로 하면 AQRKB 이기 때문에 "거울문장아님" 이라고 출력 해 주세요

해결안

  1. arr, brr 두개 문자열 입력받을 배열 생성
  2. 각 문자열의 길이를 구한다.
  3. arr을 거꾸로 저장할 배열 하나 생성 = arr2
  4. arr2와 brr을 비교한다.
  5. 카운팅으로 비교하여 arr2 = brr이 arr의 len 개수만큼 비교함
  6. if cnt값이 == len개수 일치하면 거울문장 출력, 아니면 거울문장아님 출력
int main()
{
	
	char arr[11];
	cin >> arr;
	char arr2[11];

	char brr[11];
	cin >> brr;
	char brr2[11];


	int len1 = strlen(arr);
	int len2 = strlen(brr);

	int t1 = len1 - 1; 
	int e = 0;

	for (int i = t1; i>=0; i--)
	{
		arr2[e++] = arr[i]; 
        //arr배열을 arr2배열에 거꾸로 입력받는다.
        
	}

	int t2 = len2 - 1;
	int r = 0;

	for (int i = t2; i >= 0; i--)
	{
		arr2[r++] = arr[i];
	}

	int cnt1 = 0;
	int cnt2 = 0;
	for (int i = 0; i < len1; i++)
	{
		if (arr2[i] == brr[i]) 
        // arr 뒤집은 값(첫번째 입력 뒤집은 값) 과 brr(두번째 입력 값) 비교
		{
			cnt1++;
		}
		else
		{
			cnt2++;
		}
	}
		
	if (cnt1 == len1) // cnt가 len1만큼 증가하면 모든 배열값이 일치한다는 것이니 거울문장
	{
		cout << "거울문장";
	}
	else 
	{
		cout << "거울문장아님";
	}

		return 0;
}
profile
hihi

0개의 댓글