반응형
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int n;
char board[10][10];
int main() {
cin >> n;
for (int i = 0;i < n;i++) {
for (int j = 0; j < n;j++) {
cin >> board[i][j];
}
}
//first board[i][0] find '#'
int start = 0;
int end = n - 1;
int line;
while (1) {
int mid = (start + end) / 2;
if (board[mid][0] == '#' && board[mid + 1][0] == '0') {
line = mid;
break;
}
else if (board[mid][0] == '#') {
start = mid + 1;
}
else {
end = mid - 1;
}
}
//cout << line; good! # is in 5th line
start = 0;
end = n - 1;
int kan;
while (1) {
int mid = (start + end) / 2;
if (board[line][mid] == '#' && board[line][mid+1] == '0') {
kan = mid;
break;
}
else if (board[line][mid] == '#') {
start = mid + 1;
}
else {
end = mid - 1;
}
}
cout << line << " " << kan;
}
입력 예제
8
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
출력 결과
5 2
방법은 두가지가 있다.
0,0 8,8 가운데를 계속 찾아나가는 것
아니면 끝이 있는 줄을 찾고 칸을 찾는 것
두번째가 더 구현하기 쉬워서 두번째 방식으로 함
그래서line =5 kan =2
찾고 출력
반응형
'C언어 > 문제풀다 하나씩' 카테고리의 다른 글
중복 순열 문제 (0) | 2020.05.27 |
---|---|
오랜만에 간단한 순열 문제 (0) | 2020.05.27 |
흠 start = mid는 에러나는 군 (0) | 2020.05.23 |
상처 길이 찾기 문제 (0) | 2020.05.23 |
binary search 구현2 서재에서 책 찾기 (0) | 2020.05.23 |
binary search 구현 (0) | 2020.05.23 |
Binary Search Tree 구현해보기 search함수 (0) | 2020.05.22 |
setUnion 과 findboss해보기 - UNIONFIND (0) | 2020.05.22 |