분류 전체보기(145)
-
[BOJ] #1780번: 종이의 개수
https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net 문제 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수로 되어 있다면 이 종이를 그대로 사용한다. (1)이 아닌 경우에는 종이를 같은 크기의 종이 9개로 자르고, 각각의 잘린 종이에 대해서 (1)의 과정을 반복한다. 이와 같이 종이를 ..
2022.06.29 -
[Algorithm] 쿼드트리 개념 및 코드
📌 쿼드트리란 무엇인가? 이진트리에 대해선 들어보셨을 겁니다. 한 개의 부모 노드에서 두 개의 자식 노드가 파생되는 구조의 자료구조입니다. 파이썬으로 구현하면 이렇게 생겼습니다. 🎨 이진 트리 구현 (python) class Node: def __init__(self): self.item = item self.left = None self.right = None 쿼드트리는 이진트리의 응용 버전입니다. 한 개의 부모 노드에서 네 개의 자식 노드가 파생되는 구조가 쿼드트리입니다. 쿼드트리는 이진트리처럼 나무가지로 표현할 수도 있습니다. 📌 쿼드트리 정의 하. 지. 만 쿼드트리는 3D 데이터를 표현하기 위한 자료구조인 '장면 그래프(Scene Graph)'에 해당합니다. 상하 개념이 없고, 3차원 세계를 4개..
2022.06.28 -
[BOJ] #1992번: 쿼드트리
https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 문제 흑백 영상을 압축하여 표현하는 데이터 구조로 쿼드 트리(Quad Tree)라는 방법이 있다. 흰 점을 나타내는 0과 검은 점을 나타내는 1로만 이루어진 영상(2차원 배열)에서 같은 숫자의 점들이 한 곳에 많이 몰려있으면, 쿼드 트리에서는 이를 압축하여 간단히 표현할 수 있다. 주어진 영상이 모두 0으로만 되어 있으면 압축 결과는 "0"이 되고, 모두 1로만 되어 있으면 압축 결과..
2022.06.28 -
[C++] 네임스페이스(namespace) 개념 및 코드
이번 포스팅에선 네임스페이스에 대해 알아보겠습니다. 네임 스페이스(namespace): 내부 식별자에 사용될 수 있는 유효 범위를 제공하는 선언적 영역 일종의 집단 영역이라고 볼 수 있습니다. 개발 환경 : VSCode, Windows 10 기본 개발 세팅은 다음과 같습니다. #include #include #include using namespace std; int main() { return 0; } 📌 네임스페이스(namespace) 정의 및 선언 네임스페이스는 일종의 영역입니다. "해당 영역에 있는 변수, 함수, 구조체... 등은 네임스페이스를 앞에 명시했을 때만 사용할 수 있어!" 따라서 변수, 함수, 구조체, 클래스 등 네임스페이스에 있는 모든 것들은 네임스페이스로 구분할 수 있습니다. 네임스..
2022.06.28 -
[C++] 자유 변수, 레지스터 변수, 정적 변수 ft. 유효 범위
이번 포스팅에선 유효 범위가 다른 3개의 변수에 대해 알아보겠습니다. 유효 범위(scope): 하나의 변환 단위(file) 내에서 해당 변수가 사용될 수 있는 범위 연결(linkage): 해당 변수를 사용할 수 있는 파일의 접근 가능 여부 * 외부 연결: 여러 변환 단위에서 사용 가능한 것을 말한다. 개발 환경 : VSCode, Windows 10 기본 개발 세팅은 다음과 같습니다. #include #include #include using namespace std; int main() { return 0; } 💥 알고 가야 하는 개념 [개념] 변환 단위란 무엇인가요? [답변] C++에선 한 개의 파일(file)을 말합니다. 📌 C++ 변수의 종류 C++에는 세 종류의 변수가 있습니다. 자동 변수, 레지..
2022.06.27 -
[BOJ] #2630번: 색종이 만들기
https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 문제 아래 과 같이 여러개의 정사각형칸들로 이루어진 정사각형 모양의 종이가 주어져 있고, 각 정사각형들은 하얀색으로 칠해져 있거나 파란색으로 칠해져 있다. 주어진 종이를 일정한 규칙에 따라 잘라서 다양한 크기를 가진 정사각형 모양의 하얀색 또는 파란색 색종이를 만들려고 한다. 전체 종이의 크기가 N×N(N=2k, k는 1 이상 7 이하의 자연수) 이라면 종이를 자르는 규..
2022.06.27