인프런 커뮤니티 질문&답변

대기업목표님의 프로필 이미지
대기업목표

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-E와 분할정복(Divide & Conquer)

쿼드트리 질문있습니다

해결된 질문

작성

·

45

0

http://boj.kr/4b7b07dcac794a348b06eba6291b9ac2

제가 작성한 코드입니다. 디버깅 해가면서 반례 같은 것들 찾아서 입력해보는데

어디가 틀린지 잘 모르겠습니다 ㅜㅠ

답변 2

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 ㅎㅎ

잘 짜셨네요 ㅎㅎ

다만,

cin.tie 등을 쓸 때는 scanf와 cin, cout을 같이 사용하면 안됩니다.

int main() { 
    cin >> n;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            scanf("%1d", &a[i][j]);
    cout << go(0, 0, n);

이렇게 해보시겠어요?

 

참고로 이부분은 교안내 다음부분 참고부탁드립니다.

image.png

 

 

감사합니다.

0

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

대기업목표님께서 공유하신 코드 관련하여, 쿼드트리 문제에서 흔히 놓칠 수 있는 몇 가지 부분을 안내드릴게요.

쿼드트리 문제는 주로 아래의 사항들을 잘못 처리할 경우 오답이 나올 수 있습니다:

  1. 기저 조건 처리: 기저 조건에서 모든 원소가 동일하면 그 값을 반환하고, 아니라면 각 영역을 재귀적으로 분할해야 합니다. 기저 조건을 명확히 확인하시고, 정확하게 구현되었는지 살펴봐 주세요. 특히 분할할 필요가 있는 경우/없는 경우의 판단이 중요합니다.

  2. 경계 조건 확인: 각 분할의 끝점을 잘못 설정할 경우, 잘못된 결과를 가져올 수 있습니다. 행렬의 좌표를 계산할 때 경계값이 제대로 설정되었는지 확인하시기 바랍니다.

  3. 동일 값 확인: 분할 시 모든 값이 같은지 확인하는 로직이 안정적인지 점검하세요. 이때 헬퍼 함수를 사용하여 같은지 확인하면 더욱 깔끔한 코드를 작성하실 수 있습니다.

  4. 입출력 최적화: 만약 제출 플랫폼에서 요구하는 시간 내에 처리가 안 되면, 입출력을 최적화하여 시간을 줄일 수 있습니다. C++의 입출력 속도를 높이는 기술도 고려해 보세요.

유사한 문제의 해결 방법을 탐구하시려면, 아래의 링크들을 참조하시면 도움이 될 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

대기업목표님의 프로필 이미지
대기업목표

작성한 질문수

질문하기