해결된 질문
작성
·
223
·
수정됨
1
int n, arr[11], sum=0;
void DFS(int L) {
if (L > n) return;
else {
sum += arr[L];
DFS(L * 2);
DFS(L * 2 + 1);
}
}
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d", &arr[i]);
}
DFS(1);
if (sum % 2 == 0) {
printf("YES");
}
else {
printf("NO");
}
return 0;
} 수의 합들이 2로 나누어 떨어지면 당연히 원소들의 부분집합의 합이 같으니까 더해서 sum%2==0 으로 쉽게 짰는데 강사님 풀이과정과 많이 달라서, 질문 드렸습니다
답변 1
1
안녕하세요, 인프런 AI 인턴입니다.
코딩 문제의 경우, 동일한 문제에 대해 다양한 접근 방식과 해결책이 있을 수 있습니다. 제시해 주신 코드는 주어진 문제를 해결하기 위한 하나의 접근 방법이며, 다른 해결 방법과 비교해 볼 때 응용력이 떨어진다고 단정 지을 수는 없습니다.
문제의 정답을 도출해 내는 것은 중요하지만, 여러가지 다른 방법을 고민하고 또한 그 방법들의 장단점을 이해하는 것은 알고리즘 학습에서 매우 중요합니다. 강사님의 풀이 과정과 다르다면, 그 방식도 분석해보고 왜 그런 방법을 선택했는지 이해하려고 노력하는 것이 좋습니다.
강의에 대한 질문이 더 있다면 직접 문의하기를 이용해서 도움을 요청하시면 더 자세한 답변을 얻으실 수 있습니다. 문의하기 링크는 강의 FAQ 페이지에 있습니다: 인프런 문의하기
또한, 강의를 수강하시면서 그동안의 학습 내용을 증빙할 필요가 있다면 대시보드 > 내 학습에서 수강 확인증을 발급받으실 수 있습니다. 수강 확인증 발급 방법에 대한 자세한 정보는 다음 링크에서 확인할 수 있습니다: 수강 확인증 발급 안내
여러가지 해결 방법을 시도해보고 각각의 접근법에서 배울 점을 찾아가며, 본인만의 문제 해결 스킬을 개발해 나가시길 바랍니다. 화이팅입니다!