2022. 8. 17. 14:43 자기개발/코딩테스트
C++(코딩테스트) - 쿼드압축 후 개수 세기(프로그래머스)
문제
https://school.programmers.co.kr/learn/courses/30/lessons/68936
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내가쓴 답
#include <string>
#include <vector>
using namespace std;
void DFS(vector<vector<int>>& arr, int& zero, int& one,int st_row, int st_col, size_t size)
{
if (size == 1)
{
if (arr[st_row][st_col] == 0)
{
zero++;
return;
}
else
{
one++;
return;
}
}
int sum = 0;
for (int i = st_row; i < st_row + size ; i++)
{
for (int j = st_col; j < st_col + size ; j++)
{
sum += arr[i][j];
}
}
if (sum == 0)
{
zero++;
return;
}
if (sum == size*size)
{
one++;
return;
}
DFS(arr, zero, one, st_row, st_col, size / 2);
DFS(arr, zero, one, st_row, st_col + size /2, size / 2);
DFS(arr, zero, one, st_row + size /2, st_col, size / 2);
DFS(arr, zero, one, st_row + size /2, st_col + size /2, size / 2);
}
vector<int> solution(vector<vector<int>> arr) {
vector<int> answer(2,0);
answer[0] = 0, answer[1] = 0;
DFS(arr, answer[0], answer[1], 0, 0, arr[0].size());
return answer;
}
'자기개발 > 코딩테스트' 카테고리의 다른 글
C++ (코딩테스트) - 소수 찾기(프로그래머스) (0) | 2022.09.05 |
---|---|
C++(코딩테스트) - 예상 대진표(프로그래머스) (0) | 2022.08.17 |
C++ (코딩테스트) - 문자열 압축(프로그래머스) (0) | 2022.08.10 |
C++ (코딩테스트) - 더 맵게(프로그래머스) (0) | 2021.12.01 |
C++(코딩테스트) - 기능개발(프로그래머스) (0) | 2021.11.30 |