Skip to content

Commit

Permalink
merge
Browse files Browse the repository at this point in the history
  • Loading branch information
mwy3055 committed Aug 18, 2023
1 parent 7ec9bb3 commit 7aafd80
Show file tree
Hide file tree
Showing 47 changed files with 403 additions and 3,423 deletions.
8 changes: 1 addition & 7 deletions 2020-ALPS-18th/library/is_power_of_two.cpp
Original file line number Diff line number Diff line change
@@ -1,10 +1,4 @@
<<<<<<< HEAD
int is_power_of_two(int num)
{
return num && !((num-1) & num);
=======
int is_power_of_two(int num)
{
return num && !((num-1) & num);
>>>>>>> 68196bb61d126f1040cb1bf7ba5b2922d3fba073
return num && !((num - 1) & num);
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<<<<<<< HEAD
// 트리 문제 틀
// 트리 문제 틀
#include <bits/stdc++.h>

using namespace std;
Expand All @@ -9,15 +8,15 @@ int n;
bool check[MAX + 1];
vector<pair<int, int>> node[MAX + 1];

int max_len; //지름 길이
int max_len_point; //지름에 해당하는 끝점
int max_len; // 지름 길이
int max_len_point; // 지름에 해당하는 끝점

void dfs(int point, int length)
{
if (!check[point])
{
check[point] = true;
//max_len 과 max_len_point 갱신
// max_len 과 max_len_point 갱신
if (max_len < length)
{
max_len = length;
Expand Down Expand Up @@ -47,79 +46,16 @@ int main()
node[child].push_back(make_pair(parent, length));
}

//가장 멀리 있는 정점(max_len_point) 구하기
// 가장 멀리 있는 정점(max_len_point) 구하기
dfs(1, 0);

max_len = 0;

memset(check, 0, sizeof(check));

//max_len_point와 가장 멀리 있는 정점과의 거리 구하기
// max_len_point와 가장 멀리 있는 정점과의 거리 구하기
dfs(max_len_point, 0);
cout << max_len << endl;

return 0;
}
=======
// 트리 문제 틀
#include <bits/stdc++.h>

using namespace std;

const int MAX = 10000;
int n;
bool check[MAX + 1];
vector<pair<int, int>> node[MAX + 1];

int max_len; //지름 길이
int max_len_point; //지름에 해당하는 끝점

void dfs(int point, int length)
{
if (!check[point])
{
check[point] = true;
//max_len 과 max_len_point 갱신
if (max_len < length)
{
max_len = length;
max_len_point = point;
}

for (int i = 0; i < node[point].size(); i++)
{
dfs(node[point][i].first, length + node[point][i].second);
}
}
}

int main()
{

ios::sync_with_stdio(false);
cin.tie(NULL);

cin >> n;

int parent, child, length;
for (int i = 0; i < n - 1; i++)
{
cin >> parent >> child >> length;
node[parent].push_back(make_pair(child, length));
node[child].push_back(make_pair(parent, length));
}

//가장 멀리 있는 정점(max_len_point) 구하기
dfs(1, 0);

max_len = 0;

memset(check, 0, sizeof(check));

//max_len_point와 가장 멀리 있는 정점과의 거리 구하기
dfs(max_len_point, 0);
cout << max_len << endl;

return 0;
}
>>>>>>> 68196bb61d126f1040cb1bf7ba5b2922d3fba073
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<<<<<<< HEAD
//배열 인덱스를 헷갈리지 않게 1부터 할려고했는데 이미 주어진 점에서 0 0을 포함하고 있는 사례
//인덱스를 0부터 시작으로 고정해줌 인덱스 실수 주의
// 배열 인덱스를 헷갈리지 않게 1부터 할려고했는데 이미 주어진 점에서 0 0을 포함하고 있는 사례
// 인덱스를 0부터 시작으로 고정해줌 인덱스 실수 주의
#include <bits/stdc++.h>

using namespace std;
Expand Down Expand Up @@ -52,84 +51,6 @@ int main()
}
}


for (int i = 0; i < M; i++)
{
for (int j = 0; j < N; j++)
{
if (board[i][j] == 0 && !check[i][j])
{
cnt = 0;
dfs(i, j);
v.push_back(cnt);
}
}
}

sort(v.begin(), v.end());

cout << v.size() << '\n';

for (int i = 0; i < v.size(); i++)
cout << v[i] << " ";

return 0;
}
=======
//배열 인덱스를 헷갈리지 않게 1부터 할려고했는데 이미 주어진 점에서 0 0을 포함하고 있는 사례
//인덱스를 0부터 시작으로 고정해줌 인덱스 실수 주의
#include <bits/stdc++.h>

using namespace std;

const int MAX = 100;
int N, M, K, cnt;
bool check[MAX + 1][MAX + 1];
int board[MAX + 1][MAX + 1];
int dx[4] = {0, 1, 0, -1};
int dy[4] = {-1, 0, 1, 0};

vector<int> v;

void dfs(int y, int x)
{
check[y][x] = true;

cnt++;

for (int k = 0; k < 4; k++)
{
int nx = x + dx[k];
int ny = y + dy[k];
if (0 <= nx && nx < N && 0 <= ny && ny < M && board[ny][nx] == 0 && !check[ny][nx])
{
dfs(ny, nx);
}
}
}

int main()
{

ios_base::sync_with_stdio(false);
cin.tie(NULL);

cin >> M >> N >> K;

for (int i = 0; i < K; i++)
{
int fx, fy, lx, ly;
cin >> fx >> fy >> lx >> ly;
for (int j = fy; j < ly; j++)
{
for (int k = fx; k < lx; k++)
{
board[j][k] = 1;
}
}
}


for (int i = 0; i < M; i++)
{
for (int j = 0; j < N; j++)
Expand All @@ -152,4 +73,3 @@ int main()

return 0;
}
>>>>>>> 68196bb61d126f1040cb1bf7ba5b2922d3fba073
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
<<<<<<< HEAD
#include <iostream>
#include <cmath>

Expand All @@ -20,7 +19,7 @@ int main(void)
if (num == 0)
break;

//c++에서 제곱수 만드는 법
// c++¿¡¼­ Á¦°ö¼ö ¸¸µå´Â ¹ý
int len = (int)sqrt(num);

for (int i = 1; i <= len; i++)
Expand Down Expand Up @@ -68,75 +67,4 @@ int main(void)
}

return 0;
=======
#include <iostream>
#include <cmath>

using namespace std;
int num;
int cnt;

int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);

int tc = 255;

while (tc--)
{
cnt = 0;
cin >> num;
if (num == 0)
break;

//c++에서 제곱수 만드는 법
int len = (int)sqrt(num);

for (int i = 1; i <= len; i++)
{
if (i * i == num)
{
cnt++;
break;
}
for (int j = i; j <= len; j++)
{
if (i * i + j * j == num)
{
cnt++;
break;
}
else if (i * i + j * j > num)
break;

for (int k = j; k <= len; k++)
{
if (i * i + j * j + k * k == num)
{
cnt++;
break;
}
else if (i * i + j * j + k * k > num)
break;

for (int l = k; l <= len; l++)
{
if (i * i + j * j + k * k + l * l == num)
{
cnt++;
break;
}
else if (i * i + j * j + k * k + l * l > num)
break;
}
}
}
}

cout << cnt << '\n';
}

return 0;
>>>>>>> 68196bb61d126f1040cb1bf7ba5b2922d3fba073
}
Loading

0 comments on commit 7aafd80

Please sign in to comment.