반응형
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
//bingary search tree
int map[30] = { 0,15,7,19, 0,8,17,25, 0,0,0,0,16,18 };
void find(int target, int now, int num) {
//now = 1;
if (now >= 30 || map[now] == 0) {
cout << target << ":" << "없음"<<endl;
return;
}
if (map[now] == target) {
cout << target << ":" << num << "회만에찾음" << endl;
}
else if (map[now] > target) {
find(target, now * 2, num + 1);
}
else {
find(target, now * 2 + 1, num + 1);
}
}
int main() {
for (int i = 0; i < 5;i++) {
int n;
cin >> n;
find(n, 1, 1);
}
}
1차배열 코딩한채로 하는거임.
while문 쓰라고 했는데 그냥 재귀로함...
입력 예제
8 16 9 25 30
출력 결과
8:3회만에찾음 16:4회만에찾음 9:없음 25:3회만에찾음 30:없음
반응형
'C언어 > 문제풀다 하나씩' 카테고리의 다른 글
상처 길이 찾기 문제 (0) | 2020.05.23 |
---|---|
이중배열에서 binary search 해보기 (0) | 2020.05.23 |
binary search 구현2 서재에서 책 찾기 (0) | 2020.05.23 |
binary search 구현 (0) | 2020.05.23 |
setUnion 과 findboss해보기 - UNIONFIND (0) | 2020.05.22 |
배열 회전시키기 (0) | 2020.05.22 |
오랜만에 direct배열 써보기 (0) | 2020.05.22 |
?B?? 같이 문자열 내 문자 같은지 확인 (0) | 2020.05.22 |