Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: BOJ 1992 쿼드트리 #40

Open
wants to merge 27 commits into
base: main
Choose a base branch
from
Open

Conversation

Parkjju
Copy link
Collaborator

@Parkjju Parkjju commented Jul 26, 2022

BOJ 1992 쿼드트리

로직 개요

JavaScript / 링크 / BOJ / 재귀, 분할정복

1780 / 2630 문제와 동일한 풀이 방법입니다. 재귀에 분할정복을 적용하여 풀이합니다.
먼저 전체 요소를 순회하며 하나라도 서로 다른 값으로 이루어져 있으면 순회를 중단한 뒤 쿼드트리를 네 조각으로 분리하여 압축합니다.

쿼드트리 각 조각을 순회할때 재귀적으로 함수를 호출합니다.
왼쪽 위 / 오른쪽 위 / 왼쪽 아래 / 오른쪽 아래 각각의 조각을 돌며 압축 결과를 result변수에 저장하고 네 조각에 대한 압축 결과를 자바스크립트 템플릿 리터럴 문법과 함께 괄호로 감싸 리턴합니다.

// 네 조각 순회
for (let i = 0; i < 2; i++) {
    for (let j = 0; j < 2; j++) {
        // 한 조각마다 순회 결과를 문자열 변수에 push
        const pressed = `${solution(
            row + i * halfSize,
            col + j * halfSize,
            halfSize
        )}`;
        result += pressed;
    }
}
// 템플릿 리터럴로 네 조각에 대한 압축결과를 리턴
return `(${result})`;

결과

바킹독 문제집이 좋은게 특정 문제 유형을 주고 해당 유형을 익힐 수 있게 비슷한 문제들을 시리즈 느낌으로 제공해주네요 👍 재귀 + 분할정복 유형을 세 문제 연달아 풀이해보니 감이 잘 잡히는 느낌입니다.

@Parkjju Parkjju added the BOJ 백준 온라인 저지 문제풀이 label Jul 26, 2022
@Parkjju Parkjju requested a review from 4923 July 26, 2022 21:09
@Parkjju Parkjju self-assigned this Jul 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BOJ 백준 온라인 저지 문제풀이
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant