아 리 인턴 필기시험 프로그램 검사 문제

어제 저녁 에 우연히 친구 들 이 아 리 인턴 필기시험 에서 의 프로그램 인 코딩 검 사 를 하 는 것 을 보 았 습 니 다. 문 제 는 다음 과 같 습 니 다. 두 개의 배열 A 와 B 를 정 했 습 니 다. 그 중에서 네 가지 요소 가 있다 고 가정 하면 A = [41, a2, a3, a4] 입 니 다.  B=[b1,b2,b3,b4];
그러면 B 의 요 소 를 A 에 삽입 하면 A 배열 의 임 의 위치 에 임 의 하 나 를 삽입 할 수 있 습 니 다.즉 다음 과 같은 가능성 이 있다.
C=[a1,b1,b2,b3,b4,a2,a3,a4]; 또는 C = [b1, a1, b2, b3, a2, a3, b4, a4] 등 가능 합 니 다.
그 다음 에 새 배열 의 요 소 를 두 개의 곱 하고 다시 클래스 와 연산 을 하여 그 중에서 가장 큰 조합 을 출력 합 니 다.(그 중 1234 의 순 서 는 바 꿀 수 없다)
문 제 는 30 분 으로 제한 되 어 있 으 며, 제 한 된 시간 내 에 이 문제 의 난이도 가 확실히 좀 높 은 것 같다.
첫 번 째 생각 은 폭력 적 인 해결 이다.
vector MaxSum(vector A,vector B){
	int sum=0;
	int length=A.size();
	int i=0;
	while(i Aq,Bq;
		for(int j=0;i C;
		for(int j=0;j

그리고 이렇게 많이 써 서 못 쓰 겠 어...상황 이 너무 복잡 해서 분석 하기 어 려 운 것 같 아서 비둘기 가 생 겼 어 요. 이 진 트 리 를 사용 하 는 것 이 쉬 울 지 모 르 겠 지만 단순히 배열 을 사용 하 는 것 은 어렵 습 니 다.귀속 이 너무 어려워!!!!끼어 들 기 가 너무 어려워 서 머리 가 둔해 서 해결 하기 어 려 울 것 같 아 요.
그리고 오늘 오후 에 생각해 보 니 갑자기 영광 이 반 짝 거 렸 다. 두 수 사이 의 가장 작은 수 를 선택 하여 새로운 링크 에 삽입 한 다음 에 배열 에 값 을 구 할 수 있 는 지 생각 했다. 매번 비교 할 때마다 두 배열 에서 가장 작은 요소 이기 때문에 상대 적 으로 곱 하기 도 가장 작은 그룹 일 것 이다.그래서 이런 해법 은 동적 기획?아니면 욕심?저 는 알고리즘 기초 가 좋 지 않 습 니 다. 이렇게 풀 수 있 을 것 같 아서 문 제 를 해결 할 수 있 을 지 모 르 겠 습 니 다. 그래서 제 가 만 든 프로그램 을 동봉 합 니 다. 큰 소 가 읽 어 주 셨 으 면 좋 겠 습 니 다!저 는 이 문제 가 끝 이 없 기 때문에 여러분 께 참고 만 드 리 는 것 도 제 가 공부 한 기록 입 니 다.
vector MaxSum(vector A,vector B){
	int sum=0;
	int length=A.size();
	int i=0;
	queue Aq,Bq;
	for(int j=0;i C;
	while(i<2*length){
		if(Aq.front()

비둘기 가 비 둘 기 를 맞 았 으 니 좀 어 려 운 것 같 아!30 분 은 풀 수 없 으 니 아 리 는 이미 나 에 게 서 멀 어 진 것 같다!
방금 봤 는데 문제 가 있 는 것 같 습 니 다. Aq 와 Bq 두 대기 열 팝 업 을 제어 하지 못 했 기 때문에 출력 이 틀 렸 을 것 입 니 다. 그래서 다시 바 꾸 었 습 니 다.
4. 567913. 됐어. 마지막 에 이렇게 됐어. 안 고 쳐. 머리 아파.

좋은 웹페이지 즐겨찾기