inflearn logo
강의

Course

Instructor

Coding Test Practice Test (with C++): For Large Companies

4. Baduk competition code explanation (DFS)

전역변수관련 질문입니다.

255

doggy Hot

4 asked

0

안녕하세요 강사님.

해당 문제관련 질문은 아니지만 그래도 어느정도 관련이 있어 여기다가 질문글 올립니다.

전역변수관련 질문이 있습니다.

요즘 코딩테스트에는 입력값받는 코드는 안 써도 되게 함수를 주고 인자값에 입력값이 다들어있는상태에서 함수 안에서 코드를 작성하라고 되어있는 경우가 많더라구요.

 

저는 코딩테스트를 강사님의 '대기업대비' 전의 '코딩테스트 대비' 를 처음으로 연습을 해와서 DFS나 BFS등 이외에도 많은 문제들을 전역 변수로 활용해서 푸는게 습관이 되었습니다.

 

하지만 위와같이 함수안을 구현하라는 문제가 나올때 전역변수를 쓴다면 당장 문제를 맞출 수는 있겠지만 함수구현인데 전역변수를 쓴다는 것 자체가 프로그래밍 관점으로 보았을 때, 보안문제 등 의도에 어긋난 것 같다는 느낌이 들었습니다.  

 

예를 들면 DFS구현 문제인데 함수에서는 인자로 학생의 데이터가 들어간 벡터를 넘겨주는데 강사님처럼 함수안에 DFS()로 하고 외부에 DFS함수구현을 하자니 벡터의 생명주기때문에 외부에서는 쓸수 없게 됩니다. 그래서 전역벡터변수를 하나 만들고 거기다가 함수인자값을 복사해주어서 전역변수로 문제를 풀었습니다.

 

아니면 원래 전역변수로 선언하던 벡터 등을 함수(DFS)에 인자로 계속 넘겨주자니 이것도 공간, 효율성에 문제가 있어보입니다.

 

그래서 이런 방식으로 문제를 풀었다고 해도 기업에서 보고 탈락시킬거라는 생각이들고 나중에 면접때도 왜 이렇게 풀었냐는 답변에는 답변을 잘 못할거라는 생각이 듭니다.

 

이런경우는 어떤식으로 보통 해결하나요? 긴 글 읽어주셔서 감사합니다

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

Answer 1

0

codingcamp

안녕하세요^^

DFS를 할 때 2차원배열을 쓴다면 이 2차원배열을 DFS의 매개변수 인자로 계속 넘겨주는 형태로 저는 짜고 있습니다. 어자피 인자로 넘어가는 것은 주소이니까 공간복잡도의 악영향이 있다고는 생각되지 않습니다. 함수헤더가 길어져서 모양빠져 보이고 인자가 많아 함수호출에서 효율성이 없어보이기는 하지만 저는 그렇게 합니다.

기업에서도 문제를 해결하는 방법의 과정을 보지 이런것 같지 태클걸지는 않는 것 같습니다.

조합을 구할때 algorithm 함수 next_permutation 사용 가능 여부

0

457

1

최악의 경우 연산 질문이 있습니다.

0

411

1

로컬 환경과 다르게 오답이라고 나와서 문의 드립니다.

0

302

1

6강 3번 정사각형 그리키 코드 질문 드립니다.

0

242

1

1-5 효율적인 공부 dy를 시간(N)으로 하는 풀이 질문

0

320

1

반복수와 시간초 계산을 어떻게 하나요??

0

333

1

왜 DP로 풀어야하는지 궁금합니다

0

242

1

선생님 안녕하세요. 다른 풀이에 대한 질문이 있습니다.

0

223

1

문제 해결방법에 대한 질문이 있습니다.

0

245

0

바둑대회 코딩 질문

0

270

1

6분 11초에서 dis [0][][]3차원 격자판이있는데요. 격자판안에 숫자는 문제에 없던데 어떻게 구해지는건가요?

0

200

0

실전모의고사 5회 1번 패턴찾기 질문있습니다.

0

220

1

5-1 패턴찾기 문제 질문드립니다.

0

218

1

오렌지 나무 문제 질문드립니다

0

310

1

코드 한번 봐주시면 감사하겠습니다!

0

175

1

코드 한번 봐주시면 감사하겠습니다!

0

234

1

코드 한번 봐주시면 감사하겠습니다!

0

198

1

시작점의 ch

0

204

1

vector에서 질문이 있습니다~!

0

235

1

그대로 따라했는데 시간 초과가 나왔습니다

0

161

1

2회 모의고사 4번 숲속의 기사 코드 질문이 있습니다.

0

288

1

질문있습니다.

0

209

1

이렇게 풀면 반례가 어떻게되나요?

0

245

1

1회 1번 공통 문자열 문제 설명 보충하시면 더 좋을 것 같습니다!

0

221

1