본문 바로가기
반응형

[백준]214

[BaekJoon/백준] 1780번 분할정복 2630번과 비슷하나, 4개로 쪼개는 것이 아니라 9개로 쪼개는 방식이다. #include int arr[2188][2188]; // 3의 7승은 2187 int N; int result[3]; // [0] = -1 갯수, [1] = 1 갯수, [2] = 2 갯수 // 시작점과 사각형 크기 void divide_conquer(int x, int y, int n) { int temp = arr[x][y]; for(int i = x; i < x + n; i++) { for(int j = y; j < y + n; j++) { /* 포지션 1 2 3 4 5 6 7 8 9 */ if(temp != arr[i][j]) { // divide_conquer(x, y, n/3); // 1 // divide_conquer.. 2021. 3. 14.
[BaekJoon/백준] 1992번 분할정복 2630번과 아주 비슷한 문제였다. // 땅 나누기가 시작될 때 괄호가 열리고, 끝날 때 닫힘. #include int arr[64][64]; int N; // 시작점과 사각형 크기 void divide_conquer(int x, int y, int n) { int temp = arr[x][y]; for(int i = x; i < x + n; i++) { for(int j = y; j < y + n; j++) { if(temp != arr[i][j]) { printf("("); divide_conquer(x, y, n/2); divide_conquer(x, y + n/2, n/2); divide_conquer(x + n/2, y, n/2); divide_conquer(x + n/2, y + n/2, n/.. 2021. 3. 14.
[BaekJoon/백준] 2630번 분할정복 분할정복단원 첫 시작 프로그램의 흐름은 이런식으로 구성하게 된다. 각 재귀함수에서, 위치를 다룰 때 "시작x, 시작y, 끝x, 끝y" 이런식으로 입력받을 수도 있겠으나, 네 군데이다 보니 코딩함에 있어서 다소 어지러워 보일 수 있다. 그래서 그림의 왼쪽 위의 그림을 참고해서 생각해보면 조금 더 간단하게 다뤄줄 수 있다. "시작 x, 시작 y, 사각형의 크기" 이런식으로 말이다. 이런방식을 채택하도록 노력해야한다. #include int arr[128][128]; int N; int one; int zero; // 시작점과 사각형 크기 void divide_conquer(int x, int y, int n) { int sum = 0; for(int i = x; i < x + n; i++) for(int j.. 2021. 3. 14.
[BaekJoon/백준] 5430번 덱 활용 (여러번 볼 것) 이 문제는, '내가 문제를 해결하는데 힘들었기 때문에' 가 아니라 문제 자체적으로 매우 중요하고 쓸모있는 동작방식이라고 생각하기 때문에 앞으로 여러번 봐야할 것 같다고 생각한다. 여지껏 백준을 풀면서, 디버깅에 있어서 제일 시간도 스트레스도 많이 투자한 것 같다. C언어로 문자열 입력, 스플릿, 배열 다루기 등등 너무 힘든 점이 많고.. C++에서는 STL 라이브러리를 이용해 스택 큐 등을 사용할 수 있지만 C언어는 불가능하다는것 등등을 느끼면서 C언어의 힘듦을 요즘 많이많이많이많이 깨닫고있다.. C언어로 문제를 풀면 풀수록 C++의 장점이 너무너무너무 많이 보인다... C++로 갈아타야하나 진지하게 고민이된다. 그치만 이 때문에 이 문제를 틀린 건 아니고, 문제를 틀린 이유는 '입력 포맷' 문제였다. .. 2021. 3. 11.
반응형