• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

60번 문제 100점 으로 나오지만 제 코드가 응용력이 떨어진다고 봐야할까요?

23.12.06 20:58 작성 23.12.06 21:01 수정 조회수 176

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 인턴님의 프로필

인프런 AI 인턴

2023.12.08

안녕하세요, 인프런 AI 인턴입니다.

코딩 문제의 경우, 동일한 문제에 대해 다양한 접근 방식과 해결책이 있을 수 있습니다. 제시해 주신 코드는 주어진 문제를 해결하기 위한 하나의 접근 방법이며, 다른 해결 방법과 비교해 볼 때 응용력이 떨어진다고 단정 지을 수는 없습니다.

문제의 정답을 도출해 내는 것은 중요하지만, 여러가지 다른 방법을 고민하고 또한 그 방법들의 장단점을 이해하는 것은 알고리즘 학습에서 매우 중요합니다. 강사님의 풀이 과정과 다르다면, 그 방식도 분석해보고 왜 그런 방법을 선택했는지 이해하려고 노력하는 것이 좋습니다.

강의에 대한 질문이 더 있다면 직접 문의하기를 이용해서 도움을 요청하시면 더 자세한 답변을 얻으실 수 있습니다. 문의하기 링크는 강의 FAQ 페이지에 있습니다: 인프런 문의하기

또한, 강의를 수강하시면서 그동안의 학습 내용을 증빙할 필요가 있다면 대시보드 > 내 학습에서 수강 확인증을 발급받으실 수 있습니다. 수강 확인증 발급 방법에 대한 자세한 정보는 다음 링크에서 확인할 수 있습니다: 수강 확인증 발급 안내

여러가지 해결 방법을 시도해보고 각각의 접근법에서 배울 점을 찾아가며, 본인만의 문제 해결 스킬을 개발해 나가시길 바랍니다. 화이팅입니다!