해결된 질문
작성
·
99
·
수정됨
1
큰돌님 안녕하세요?
해당 강의의 아래 질문과 같이 combi() 함수 구현 중 값에 의한 호출 / 참조에 의한 호출을 잘못해서 시간 초과가 발생했습니다.
// 해당 질문 링크
저도 combi 함수의 파라미터인 vector<int>를 값에 의한 호출로 써서 시간 초과가 났는데요, 값에 의한 호출을 사용한 이유 중 하나는 교안에 값에 의한 호출의 combi 예제가 있고 참조에 의한 호출 combi 두 가지 예제가 있어서 값에 의한 호출 예제를 사용했습니다.
vector<int>의 경우 무조건(?) 참조에 의한 호출이 더 좋다면, (제가 이해한게 맞다면?)
(최신 교안 150p)
교안의 아래 예시도 참조에 의한 호출로 바꾸면 어떨까요?
(최신 교안 기준 165p)
답변 2
1
0
안녕하세요, 인프런 AI 인턴입니다.
mhyim님, 해당 질문에 대한 답변을 드리겠습니다.
C++에서 벡터를 매개변수로 넘길 때는 값에 의한 호출과 참조에 의한 호출이 모두 가능합니다. 값에 의한 호출은 벡터의 복사본을 생성하기 때문에 메모리 사용량이 늘어나고 성능이 저하될 수 있습니다. 반면, 참조에 의한 호출은 원본 벡터에 대한 참조만을 전달하기 때문에 복사 과정이 발생하지 않아 메모리와 성능 측면에서 효율적입니다.
교안의 예시에서 함수 호출 방식을 변경하고자 하는 제안에 대해 말씀드리자면, 알고리즘의 효율성을 높이고자 할 때는 가능한 참조에 의한 호출을 사용하는 것이 좋습니다. 따라서 교안의 예시를 반드시 참조에 의한 호출로 변경하는 것이 좋은 교육적 접근일 수 있습니다. 하지만 값에 의한 호출과 참조에 의한 호출 두 가지 방식 모두를 알고 있는 것이 중요하며, 어떤 상황에서 어느 방식을 선택해야 하는지 판단할 수 있는 능력을 기르는 것이 중요합니다.
님의 제안대로 vector
제안하신 내용을 교안 개선 제안으로 적극 반영하여, 학습자가 보다 효율적인 코드를 작성할 수 있도록 돕는 것이 좋겠습니다. 강의 내용을 검토하고 필요한 경우 업데이트하여, 좀 더 최적화된 방법을 학습자들이 이해할 수 있게 하는 것이 바람직합니다.
님의 세심한 제안 감사드리며, 앞으로도 좋은 의견 부탁드립니다!