티스토리 뷰
728x90
반응형
문제 링크
programmers.co.kr/learn/courses/30/lessons/68936
코딩테스트 연습 - 쿼드압축 후 개수 세기
[[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15]
programmers.co.kr
문제 풀이
[ 백준 2630 ] 색종이 만들기 - Java
문제 링크 https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들..
hoony-devblog.tistory.com
제가 예전에 풀었던 색종이 만들기와 거의똑같은 문제였죠.
계속해서 4등분을해서 같은지 비교해가며 풀면 쉽게 풀어낼수 있습니다.
소스 코드
class Solution {
public static int[] solution(int[][] arr) {
int[] answer = new int [2];
String ans = sol(arr, arr.length, 0, 0);
for (char cha : ans.toCharArray()) answer[cha-'0']++;
return answer;
}
static String sol(int [][] arr, int n , int x , int y) {
if(test(arr, n, x, y)) {
return arr[x][y]+"";
}else {
return sol(arr, n/2, x, y) +sol(arr, n/2, x, y+n/2) +sol(arr, n/2, x+n/2, y) +sol(arr, n/2, x+n/2, y+n/2);
}
}
static boolean test(int [][] arr, int n , int x , int y) {
for (int i = x; i < x+n; i++) {
for (int j = y; j < y+n; j++) {
if(arr[x][y]!=arr[i][j]) return false;
}
}
return true;
}
}
728x90
반응형
250x250
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 문자열 압축
- yyyy-MM-dd
- for of
- 커링
- 백준
- javascript
- java
- 39회차
- 카카오 인턴십
- vaild
- 반례
- 청소년상어
- 삼성 코테
- 가장 큰 수
- 제네릭(Generic)
- 제네릭 타입
- 카카오 코딩 테스트
- 01타일
- 프로그래머스
- 삼각달팽이
- local cache
- spring cache
- 1629
- 삼성기출
- RGB거리
- 19236
- 오버로딩
- 날짜 유효성
- 키패드 누르기
- DP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함