티스토리 뷰
오늘의 문제!
https://www.acmicpc.net/problem/1992
입력
첫째 줄에 N이 주어짐
둘째 줄부터 N개의 줄 동안 길이 N인 문자열이 들어옴
풀이
1번 (x0,y0)~(xi,yi) 까지 0 또는 1중 하나의 값으로 이루어 있는지 확인, 둘중 하나의 값으로 되어 있으면 해당 값 출력
2번 0과1로 섞여있을 경우는 좌상,우상,좌하,우하로 나누어 다시 1번 판별 이때 좌상 들어가기전 " ( " 출력 / 우하 끝나고 " ) " 출력
소스
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #include <stdio.h> #include <iostream> using namespace std; char map[65][65]; void calResult(int x0, int y0, int xi, int yi){ char num = map[y0][x0]; bool check = true; for(int y=y0;y<yi;y++){ for(int x=x0;x<xi;x++){ if(num != map[y][x]){ check = false; break; } } if(!check){ break; } } if(check){ cout << num; return; } cout << "("; int L = (xi-x0)/2; calResult(x0+L*0, y0+L*0, x0+L*1, y0+L*1); calResult(x0+L*1, y0+L*0, x0+L*2, y0+L*1); calResult(x0+L*0, y0+L*1, x0+L*1, y0+L*2); calResult(x0+L*1, y0+L*1, x0+L*2, y0+L*2); cout << ")"; return; } int main(void){ int N; cin >> N; for(int y=0;y<N;y++){ for(int x=0;x<N;x++){ cin >> map[y][x]; } } calResult(0, 0, N, N); return 0; } | cs |
'PS > 백준' 카테고리의 다른 글
[백준/C++] 11052번 - 카드 구매하기 (0) | 2021.03.29 |
---|---|
[백준/C++] 2339번 - 석판자르기 (0) | 2021.03.25 |
[백준/C++] 1725번 - 히스토그램 (0) | 2021.03.20 |
[백준/C++] 2104번 - 부분배열 고르기 (0) | 2021.03.19 |
[백준/C++] 1629번 - 곱셈 (0) | 2021.03.18 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- storage
- 싱글톤
- MVC
- Firebase
- 디자인패턴
- HIG
- UIView
- 오토레이아웃
- apple
- 알고리즘
- 백준
- 온라인저지
- DP
- ios
- Human Interface Guidelines
- 분할정복
- Swift
- Human Interface Guideline
- HumanInterfaceGuidelines
- 부스트코스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함