SRM494 즐거운 파티
화이트씨는 다재다능한 사람입니다.(모든 것이 그의 관심 대상입니다.) 그래서 그에게는 친구가 많습니다.
하지만 불행하게도 그의 친구들은 다재다능하지 않습니다.
각각의 친구는 2가지 주제에만 관심이 있고 다른 주제로 이야기하는 것을 싫어합니다.
그래서 파티를 개최할 때마다 모두가 즐겁게 파티를 보내려면 어떤 친구를 초대할지가 큰 문제입니다.
화이트씨는 그 동안의 경험으로 초대된 친구 모두가 공통의 흥미 있는 화제가 있을 때
파티를 즐긴다는 것을 알았습니다.
문자열 배열 first, second가 주어집니다. 화이트씨의 i 번째 친구가 흥미 있는 화제는 first[i]와 second[i]입니다.
즐거운 파티가 되려면 화이트씨가 초대할 수 있는 친구는 최대 몇 명인지 리턴하세요.
제약조건 : 매개변수 범위
first, second-> 1~50개의 요소를 갖는 배열 (두 배열은 같은 크기이다.)
각 요소는 1~15개의 문자이며, 각 문자는 영어 소문자 입니다.
i번째 요소 first[i]와 second[i]의 내용은 다릅니다.
파티에 서로 모르는 친구들을 초대할 계획이다. 이 친구들의 관심사가 겹친다면 서로 편하게 어울릴 수 있을 것이다.
즉 파티에 참가한 멤버 중에 동일한 관심사를 갖고 있는 다른 멤버가 최소 1명 이상이어야 하는 조건을 성립해야 한다.
파티 신청자 중 그들의 관심사 경향에 따라 최대로 초대 가능한 숫자를 리턴할 것
친구 A의 관심 목록 1.(건강) 2.(취업) <- 이런식의 목록을 정한다.
다음과 같은 배열을 만들고 이곳에서 랜덤으로 string 값을 추출해 해당 지원자의 관심사 목록에 할당할 것이다.
interestingArray = new string[]
{
"game",
"study",
"movie",
"book",................
};
지원자가 갖고 있는 관심사 정보를 구성하기 위해 다음과 같은 클래스를 만들었다.
1. 그다음 미리 정해놓은 지원자 숫자를 입력
2. 입력된 지원자들에게 랜덤으로 관심사 목록을 할당한다.
3. 한 지원자가 가지고 있는 두 관심사 중 보다 더 매치 경향이 높음 정도를 찾는다.
4. 모든 지원자를 반복하여 여러 사람과 최대한 많이 매치하는 선호도의 높음 정도를 갱신한다.
