• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

아나그램 문제 풀이 방법!

22.03.24 21:46 작성 조회수 130

0

안녕하세요! 

16번 아나그램을 풀다가 이렇게 한번 풀어봤는데요, 

16번까지 오면서 처음으로 모범 답안보다 조금 더 효율적인 방법이 아닐까 싶어서 제안겸 자랑(?)을 하기 위해 소스를 공유합니다 :D

#include <iostream>
using namespace std;

int main()
{
	//FILE* fp = nullptr;
	//freopen_s(&fp, "input.txt", "rt", stdin);
	
	char a[150];
	char b[150];
	char temp[100] = { 0 };
	cin >> a >> b;
	
	for (int i = 0; a[i] != '\0'; i++) {
		temp[a[i] - 65]++;
		temp[b[i] - 65]++;
	}

	for (int i = 0; i < 51; i++) {
		if (temp[i] == 0)
			continue;
		if (temp[i] % 2 == 1) {
			cout << "NO";
			return 0;
		}
	}

	cout << "YES";

	return 0;
}

 

a와 b의 크기를 100으로 했을 경우 "- Stack around the variable 'a' was corrupted." 에러가 발생을 해서 어떻게 해야할지 몰라 일단 메모리 크기를 넉넉하게 잡고 풀었습니다.

좋은 강의 감사드리고 앞으로도 열심히 들을게요! 

답변 1

답변을 작성해보세요.

0

홍재윤님의 프로필

홍재윤

2022.03.25



a="AAAA"

b="AABB"
 일경우 YES가 뜰것 같아요!

차동훈님의 프로필

차동훈

질문자

2022.03.26

헐 감사합니다!! 이런 경우도 있었군요 !!