본문 바로가기

분류 전체보기

(370)
[BOJ] 4386번 별자리 만들기 (C++) https://www.acmicpc.net/problem/4386 4386번: 별자리 만들기 도현이는 우주의 신이다. 이제 도현이는 아무렇게나 널브러져 있는 n개의 별들을 이어서 별자리를 하나 만들 것이다. 별자리의 조건은 다음과 같다. 별자리를 이루는 선은 서로 다른 두 별을 일 www.acmicpc.net #include #include #include #include using namespace std; int n; int parent[101]; vector star; vector v; int getParent(int a){ if(a == parent[a]) return a; return getParent(parent[a]); } void unionParent(int a, int b){ a = ge..
[BOJ] 2468번 안전 영역 (C++) https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net #include #include #include #include using namespace std; int n, cnt; int arr[101][101]; int fixedarr[101][101]; bool visited[101][101]; int dx[4] = { -1, 0, 0, 1 }; int dy[4] = { 0, -1, 1, 0 }; void bfs(int a, int b) { queue q;..
[BOJ] 20040번 사이클 게임 (C++) https://www.acmicpc.net/problem/20040 20040번: 사이클 게임 사이클 게임은 두 명의 플레이어가 차례대로 돌아가며 진행하는 게임으로, 선 플레이어가 홀수 번째 차례를, 후 플레이어가 짝수 번째 차례를 진행한다. 게임 시작 시 0 부터 n − 1 까지 고유한 www.acmicpc.net #include using namespace std; int n, m; int parent[500001]; int getParent(int a){ if(a == parent[a]) return a; return parent[a] = getParent(parent[a]); } void unionParent(int a, int b){ a = getParent(a); b = getParent(b)..
[BOJ] 1197번 최소 스패닝 트리 (C++) https://www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net #include #include #include using namespace std; int v, e; int parent[10001]; int getParent(int x){ if(parent[x] == x) return x; return parent[x] = getParent(parent[x]); } void unionParent(int a, in..
[BOJ] 1717번 집합의 표현 (C++) https://www.acmicpc.net/problem/1717 1717번: 집합의 표현 첫째 줄에 n(1 ≤ n ≤ 1,000,000), m(1 ≤ m ≤ 100,000)이 주어진다. m은 입력으로 주어지는 연산의 개수이다. 다음 m개의 줄에는 각각의 연산이 주어진다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 www.acmicpc.net #include using namespace std; int n, m; int parent[1000001]; int getParent(int x){ if(parent[x] == x) return x; return parent[x] = getParent(parent[x]); } void unionParent(int a, int b){ a = getParent..
[BOJ] 21940번 가운데에서 만나기 (C++) https://www.acmicpc.net/problem/21940 21940번: 가운데에서 만나기 위 조건을 만족하는 도시 $X$의 번호를 출력한다. 만약 가능한 도시 $X$가 여러 개인 경우는 도시의 번호를 오름차순으로 출력한다. www.acmicpc.net #include #include #define INF 987654321 using namespace std; int graph[201][201]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n, m; cin >> n >> m; for(int i = 1; i a >> b >> t; graph[a][b] = t; } for(int k = 1; k > c; v.push_back(c); ..
[BOJ] 10026번 적록색약 (C++) https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net #include #include #include using namespace std; int n; char arr[100][100]; bool visited[100][100]; int dx[4] = { -1, 0, 0, 1 }; int dy[4] = { 0, -1, 1, 0 }; void bfs(int a, int b){ queue q; q.push({a, b}); visited[a][b]..
[BOJ] 22945번 팀 빌딩 (C++) https://www.acmicpc.net/problem/22945 22945번: 팀 빌딩 능력치가 다 다른 개발자 $N$명이 팀 빌딩을 위해 한 줄로 서있다. 하나의 팀을 만들기 위해서는 개발자 2명이 반드시 모여야 한다. 개발자 A와 개발자 B가 팀을 만들 때 팀의 능력치는 아래와 같 www.acmicpc.net #include #include #include using namespace std; int main() { int n; cin >> n; vector v; for(int i = 0; i > x; v.push_back(x); } int l = 0; int r = v.size() - 1; int max = 0; while(l < r){ int a = (..