inflearn logo
강의

講義

知識共有

it 就職のためのアルゴリズム問題プール入門 (with C/C++) : コーディングテスト対比

60. 和のようなサブセット(Amazonインタビューの問題:DFS完全探索)

질문 있습니다!!

281

leehoogwan

投稿した質問数 17

0

#include <iostream>
#include<string>
#include<vector>
#include<deque>
#include<algorithm>
#include<stack> //스택 구조 사용하기
using namespace std;

///////////////////////////////////////////////////////////////
//변수 정의(전역변수)
int N;
int sum = 0;
bool arr[11];
int vec[11];
//vector<int>vec;
///////////////////////////////////////////////////////////////
//내가 짠 함수(시간 오래 걸림)
//void func(int k)
//{
//	int S = 0;
//	for (int i = 1; i <= N; i++)
//	{
//		if (arr[i] == true)
//		{
//			S += vec[i];
//		}
//	}
//
//	if (sum  - S == S)
//	{
//		cout << "YES" << '\n';
//		exit(0);
//	}
//
//	if (k > N)
//	{
//		//cout << "NO" << endl;
//		return ;
//	}
//
//	else
//	{
//		arr[k] = 1;
//		func(k + 1);
//		arr[k] = 0;
//		func(k + 1);
//	}
//}
////////////////////////////////////////////////////////////
//강의 듣고 다시 짠 함수
void func(int k, int S)
{
	if (sum - S == S)
	{
		cout << "YES" << '\n';
		exit(0);
	}

	if (k > N)
		return;
	else
	{
		func(k + 1, sum + vec[k]);
		func(k + 1, sum);
	}
}
/////////////////////////////////////////////////////////////
//main 함수
int main()
{
	ios::sync_with_stdio(0);
	cin >> N;
	
	for (int i = 1; i <= N; i++)
	{
		cin >> vec[i];
		sum += vec[i];
	}

	func(1, 0);

	cout << "NO" << endl;
	return 0;
}


//

C++ 코테 준비 같이 해요!

回答 2

0

lena1005c3396

저도 궁금한데 아직도 답변이 안달려있네요 ㅠㅠ

0

leehoogwan

안녕하세요!  강의 정말 잘 듣고 있습니다!!

질문이 두 가지 있어서 여쭙니다.

(제가 짠 함수는 일단 주석처리를 했습니다.)

선생님 강의를 보고 다시 짠 코드는 함수의 매개변수를 늘려 시간을 줄인 점이라 생각합니다. 

1. 질문)  저는 if(L == n+1)일 때 조건을 확인하지 않고 그 전에 따로 확인해줘서 exit(0)를 넣어 찾으면 강제종료 되도록 구현했습니다. 왜냐면, 이게 가능한지 안한지의 경우만 찾으면 되기 때문에 끝까지 안돌아도 중간에 확인해서 조건을 만족하면 강제종료 해도 된다고 생각했습니다.

여기서 예외나 오류가 생길 수 있을까요?

2. 질문) 제가 vector를 쓰고 싶어서 전역변수로 잡고(vector<int>vec) <-- 이렇게

 main()안에서 N의 크기를 넣어 다시 정의해 주면서(vector<int>vec(N)) <--이렇게

push_back으로 입력을 받았는데 자꾸 실행하면 오류가 나오네요..ㅜ 예외처리의 문제라고 뜨는데, 혹시 전역변수로 정의하고 main()에서 또 정의해주게 되면 문제가 생기는 것일까요?.. 아니면 단순 데이터 범위를 제가 넘은걸까요?..확인하고 또 확인했는데도 모르겠네요ㅜ . 

감사합니다.

테스트 케이스 질문

0

373

1

병합정렬 시간복잡도 질문

0

462

1

41.연속된 자연수의 합 문제풀이에서 수학적인 원리를 모르고 있습니다.

0

1345

2

질문드립니다.

0

376

1

질문드립니다!

0

430

1

dev 프로그램 질문

0

275

1

문제가 이해가 안되요

0

376

1

4번 나이차이 문제 접근법 질문 드립니다.

0

307

1

source file not compiled

0

1047

3

59번 질문드립니다.

0

372

1

25번 문제 질문

0

349

1

4. 나이차이 문제 질문입니다.

0

372

1

90번 라이언 킹 심바 1번 테스트 케이스

0

470

1

71번 문제 전역 변수 질문 있습니다

0

365

1

75번, 79번 priority_queue관련

1

356

1

75.최대 수입 스케줄

0

400

2

복면산 정답의 수

0

431

1

테스트 케이스에 대해서

0

445

1

수업 내용 질문입니다!

1

232

1

풀어보면 좋은 문제 목록 - 2580 스토쿠 DFS 질문입니다!!

0

822

2

12. 플로이드-와샬(그래프 최단거리) . 27:25초

0

255

1

다른 풀이 방식

0

317

1

크루스칼 vs 프림

0

306

1

숫자 총개수 small 질문있습니다.

0

243

1