diff --git a/BOJ/26-2-W2/BOJ10815/mindidii.cpp b/BOJ/26-2-W2/BOJ10815/mindidii.cpp new file mode 100644 index 0000000..22aefb7 --- /dev/null +++ b/BOJ/26-2-W2/BOJ10815/mindidii.cpp @@ -0,0 +1,36 @@ +#include +#include +#include +#include + +using namespace std; + +int nums[20000002]; // 지역변수로 사용하면 stack 영역에 저장하기 때문에 값이 터짐 + +int main() +{ + ios_base::sync_with_stdio(false); + cin.tie(NULL); + + int N; + cin >> N; + + int a; + for(int i=0; i> a; + nums[a + 10000000] = 1; + } + + int M; + cin >> M; + int b; + for(int i=0; i> b; + if(nums[b + 10000000] == 1) cout << 1 <<' '; + else cout << 0 << ' '; + } + + return 0; +} \ No newline at end of file diff --git a/BOJ/26-2-W2/BOJ11053/mindidii.cpp b/BOJ/26-2-W2/BOJ11053/mindidii.cpp new file mode 100644 index 0000000..ade77a9 --- /dev/null +++ b/BOJ/26-2-W2/BOJ11053/mindidii.cpp @@ -0,0 +1,38 @@ +#include +#include +#include +#include + +using namespace std; + +int main() +{ + + // 수열 A가 주어졌을 때 가장 긴 증가하는 수열 + int N; + cin >> N; + vectornums(N); + vectordp(N, 1); + for(int i=0; i> nums[i]; + } + + // dp테이블에 현재의 값보다 작은 개수를 count 해서 테이블을 체우기 + int result = 0; + for(int i=0; i +#include +#include +#include +#include + +using namespace std; + +vector line; + +int main() +{ + + int N; + cin >> N; + line.assign(N, 0); + + for(int i=0; i> line[i]; + } + + sort(line.begin(), line.end()); + + vectorprefix(N); + prefix[0] = line[0]; + for(int i=1; i +#include +#include +#include +#include +#include + +using namespace std; + +int main() +{ + int N; + cin >> N; + + // 압축을 해야하는 수보다 작은 수의 개수로 압축 + vectorcoordinate(N); + for(int i=0; i> coordinate[i]; + } + + vectorordered(N); + copy(coordinate.begin(), coordinate.end(), ordered.begin()); + sort(ordered.begin(), ordered.end()); + + ordered.erase(unique(ordered.begin(), ordered.end()),ordered.end()); + + + for(int c:coordinate) + { + auto it = lower_bound(ordered.begin(),ordered.end(), c); + int count = distance(ordered.begin(), it); + cout << count << " "; + } + + + return 0; +} \ No newline at end of file diff --git a/BOJ/26-2-W2/BOJ5567/mindidii.cpp b/BOJ/26-2-W2/BOJ5567/mindidii.cpp new file mode 100644 index 0000000..ff16cfc --- /dev/null +++ b/BOJ/26-2-W2/BOJ5567/mindidii.cpp @@ -0,0 +1,70 @@ + #include + #include + #include + #include + + using namespace std; + + int n, m; + vector>friends; + int visit[501]; + + void bfs(int start) + { + queueq; + q.push(start); + visit[1] = 0; + + while (!q.empty()) + { + int curr = q.front(); + q.pop(); + + for(int i=0; i> n >> m; + friends.assign(n + 1, vector()); + fill(visit, visit+501, -1); + int check = false; + for(int i=0; i> a >> b; + friends[a].push_back(b); + friends[b].push_back(a); + if( a == 1 || b == 1) check = true; + } + + int cnt = 0; + if(!check) + { + cout << 0 << '\n'; + + } + else { + bfs(1); + for(int i=0; i