Conversation
zaqquum
approved these changes
Aug 5, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
주 목표 문제 수: 3개
백준 #2630. 색종이 만들기: 분할정복, 재귀 / 실버2
정리한 링크: (바로가기)
🚩플로우 (선택)
n과 정사각형의 칸의 색을 입력받아colored_paper리스트에 저장한다.white_cnt로, 파란색 색종이의 개수는blue_cnt로 각각 0으로 초기화한다.find_number_of_paper함수는 색종이의 색을 분할정복하여 재귀적으로 파악하는 함수이다.x_start,y_start부터 시작하는nxn크기의 종이가 모두 같은 색인지 파악한다.white_cnt의 값을 증가시킨다.blue_cnt의 값을 증가시킨다.find_number_of_paper를 호출하여 동일한 작업을 시작한다.white_cnt)와 파란색 색종이(blue_cnt)의 개수를 출력한다.🚩제출한 코드
💡TIL
프로그래머스 #점프와 순간 이동: 수학 / Level 2
정리한 링크: 바로가기
🚩플로우 (선택)
주어진 값 계속 2로 나눠 가면서 나머지가 없으면 2로 나누고 , 나머지가 있으면 -1 (1회 점프 ; ans += 1) 해주면서 입력한 값 n이 0이 될 때까지 반복한다.
🚩제출한 코드
💡TIL
bin()에 대해 알게 되었다. 쉬운 문제지만 문제 푸는 데 식견이 조금 넓어진 것 같다.백준 #1074. Z: 분할정복, 재귀 / 실버1
정리한 링크: (바로가기)
🚩플로우 (선택)
2^(N-1) x 2^(N-1)이며, 순서는 왼쪽위, 오른쪽 위, 왼쪽 아래 오른쪽 아래로 동작한다.(r, c)좌표가 현재 속한 사분면을 찾는다. 그 사분면의 순서를 더해가면서 최종결과를 도출한다.(r, c)좌표가 해당하면 추가 계산 없이 재귀호출한다.c좌표를 반으로 줄여 다시 재귀호출한다.r좌표를 반으로 줄여 다시 재귀호출한다.c좌표와r좌표 모두 반으로 줄여 다시 재귀호출한다.N=0)탐색 순서가 0이 되고 재귀 함수를 종료한다.(r, c)의 탐색순서를 반환한다.🚩제출한 코드
💡TIL
분할(Divide)
2^N x 2^N크기의 배열을 4개의2^(N-1) x 2^(N-1)크기의 사분면으로 나눈다.정복(Conquer)
2^N x 2^N크기의 배열을 직접 생성하고 모든 좌표를 순차적으로 방문하여 탐색 순서를 계산하는 방식으로 접근하였는데, 이렇게 접근할 경우 제한된 시간안에 답하지 못해 성능이 떨어지는 문제점이 있었다.백준 #1992. 쿼드트리: 분할정복, 재귀 / 실버1
정리한 링크: 바로가기
🚩플로우 (선택)
처음에는 함수에 들어올 때 괄호를 열고(
() 함수를 나갈 때 괄호를 닫았는데 ()) 그렇게 하니까 아래와 같이 매번 호출할 때마다 괄호가 추가되는 문제가 발생했다.즉, 함수를 호출할 때마다 괄호가 추가하는 것이 아니라 어떤 ‘경우’에만 괄호를 추가해야 한다는 것을 알게 되었다. 즉, 압축할 수 있는 경우가 아니라 한 번 더 분할 재귀할 때 괄호를 열고, 재귀호출이 마무리 되었을 때 괄호 닫을 수 있도록 코드에 반영해야 한다.
n과 영상 배열grid를 입력받아 저장한다. 이때 영상배열은 초기에 문자열로 입력 받은 후, 각각의 문자열을 int로 변환하여 리스트로 저장한다. 또한 정답으로 출력시킬 압축된 문자열을answer에 저장하기 위해answer를 빈 문자열로 초기화한다.quad_tree함수를 정의한다.cnt를 0으로 설정한다.grid배열을 초기에 주어진 x 시작 위치(x_start)부터 배열의 크기n까지, y 시작 위치(y_start)부터 배열의 크기n까지 순회하면서 grid 요소의 값을 누적하여 cnt에 저장한다.cnt의 값이 0이라면 “0”으로 압축이 가능하며, 1nn이라면 “1”로 압축이 가능하다. 이를answer문자열에 추가한다.() 호출이 모두 끝날 때에 괄호를 닫고 ())answer문자열에 추가한다.answer를 출력한다.🚩제출한 코드
💡TIL