일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 코테
- 코딩테스트
- KT
- 네트워크 관리사
- Java
- 백준위
- it 뉴스
- python
- 코딩테스트 연습
- 인앱결제
- 신문 스크랩
- 구글
- java 객체지향 프로그래밍
- SSAFY 7기
- 리얼클래스
- SSAFY
- IT 동향
- 카카오
- IT 트렌드
- 프로그래머스
- 싸피
- 네트워크 관리사 2급 실기
- 신문스크랩
- SSAFYcial
- html
- 네트워크 관리사 2급
- 백준
- 우테코
- 싸피셜
- it 이슈
Archives
- Today
- Total
개발자일걸요..?
1992번 쿼드트리 본문
728x90
반응형
문제링크 : www.acmicpc.net/problem/1992
1992번: 쿼드트리
첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또
www.acmicpc.net
<알고리즘>
1) getline으로 input받고 하나씩 vector에 저장(숫자 다음에 오는 입력을 getline으로 받기 위해선 개행 때문에 cin.ignore()이 필요하다)
2) quadTree 알고리즘을 이용해 vector를 4분할하여 병합가능한지 확인
2-1) 병합 가능하면 answer에 병합한 색깔숫자 입력
2-2) 병합불가능하면 다시 4분할 하여 병합가능한지 확인
3) 형식에 맞춰 추가된 answer를 출력
메모리 : 2020KB 시간 : 0ms
#include<iostream>
#include<string>
#include<vector>
using namespace std;
string answer = "";
void quadTree(vector<vector<int>> &input, int X, int Y, int size) {
bool isCombine = true;
int begin = input[X][Y];
for (int j = Y; j < Y + size; j++) {
for (int i = X; i < X + size; i++) {
if (begin != input[i][j]) {
isCombine = false;
break;
}
}
if (isCombine == false) break;
}
if (isCombine) {
answer.append(to_string(begin));
return;
}
size = (int)(size / 2);
answer.append("(");
quadTree(input, X, Y, size);
quadTree(input, X, Y + size, size);
quadTree(input, X + size, Y, size);
quadTree(input, X + size, Y + size, size);
answer.append(")");
}
int main() {
int N = 0;
cin >> N;
cin.ignore();
vector<vector<int>> input(N,vector<int>(N));
for (int i = 0; i < N; i++) {
string temp = "";
getline(cin, temp);
for (int j = 0; j < N; j++) {
input[i][j] = temp[j]-'0';
}
}
quadTree(input, 0, 0, N);
cout << answer;
return 0;
}
+) 참고 : chessire.tistory.com/entry/%EC%BF%BC%EB%93%9C%ED%8A%B8%EB%A6%ACQuad-tree
쿼드트리(Quad tree)
자료구조 카테고리를 만들까 하다가 알고리즘 카테고리에 작성합니다. 쿼드트리란? 트리 자료구조중 하나로 부모 노드 아래에 자식 노드를 4개(Quad)씩 가지고 있는 트리입니다. 이미지 용량,
chessire.tistory.com
반응형
'알고리즘코딩 > Baekjoon Online Judge' 카테고리의 다른 글
1629번 곱셈 (0) | 2021.03.02 |
---|---|
1780번 종이의 개수 (0) | 2021.03.01 |
2630번 색종이 만들기 (0) | 2021.03.01 |
10816번 숫자카드2 (0) | 2021.02.28 |
1920번 수 찾기 (0) | 2021.02.28 |
Comments