반응형

Programming/Baekjoon 117

백준 11724 c++ 연결 요소의 개수

https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 위의 링크로가면 문제를 볼 수 있다. #include #include #include #include #include using namespace std; int n, m; int u, v; vectorvec[500001]; bool visited[500001]; int answer = 0; void dfs(int start) { st..

백준 10451 c++ 순열사이클

#include #include #include #include #include using namespace std; int t; int n; int temp; vectorvec[1005]; vectorresult; bool visited[1005]; int sum = 0; void dfs(int start) //dfs 탐색 { stacks; s.push(start); visited[start] = true; while (!s.empty()) { int x = s.top(); s.pop(); for (int i = 0; i < vec[x].size(); i++) //스택의 top 값인 x와 연결된 값들을 확인 { if (visited[vec[x][i]])continue; //방문하지않았으면 스택의 pus..

백준 1753 c++ 최단경로

#include #include #include #include #include using namespace std; #define INF 1000000 int v, e; //정점, 간선 int start; //시작정점 int t1, t2, t3; int result[20001]; //최단경로값 저장할 배열 vectormap[300001]; void func(int s) { priority_queueq; //우선순위큐, 내림차순으로 선언, 가중치가 작은 순으로 정렬 q.push({ 0,s }); result[s] = 0; //시작점은 0 while (!q.empty()) { int num = q.top().second; // 1 2 3 4 int len = q.top().first; //0 2 3 7 q..

백준 1094번 c++ 막대기

https://www.acmicpc.net/problem/1094 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대 www.acmicpc.net 위의 URL을 클릭하면 문제를 볼 수 있습니다. #include #include #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cout.tie(NULL); cin.tie(NULL); //64 32 16 8 4 2 1 int x; int answer = 0; //사용되는 막대의 개수..

백준 2630 색종이만들기 [c++]

#include #include #include #include #include using namespace std; int map[129][129]; //전체종이 int wcnt = 0; //하얀색 색종이의 수 int bcnt = 0; //파란색 색종이의 수 int n; //한변의길이 int len; void func(int a,int b,int l) //각각의 색종이를 확인하는 함수 { int wc = 0; int bc = 0; int check = false; for (int i = a; i < a+l; i++) //입력받은 매개변수에서 색종이의 길이만큼 확인 { for (int j = b; j < b+l; j++) { if (map[i][j] == 1) bc++; else if (map[i][j]..

백준2468 안전영역 [c++]

#include #include #include #include #include using namespace std; int n; //행, 열의 수 int map[101][101]; int tempMap[101][101]; bool visited[101][101]; int xarr[4] = { 1,-1,0,0 }; //상하좌우탐색 int yarr[4] = { 0,0,1,-1 }; int mNum = 0; //입력받은행열에서 가장 큰수 저장 int h = 0; //높이 int idx = 0; vectorv; //각각의 비의양에 따라서 안전영역의 수 저장할 vector void dfs(int a, int b) //인접한 안전영역을 탐색하는 dfs { stacks; s.push({ a,b }); visited..

백준 16946 벽부수고 이동하기4 [c++]

#include #include #include #include #include #include using namespace std; int n, m; int map[1001][1001]; //행렬을 입력받을 배열 int result[1001][1001]; //결과출력에 사용될 배열 int test[1001][1001]; //이동할수있는 곳을 영역별로 분리할때 사용될 배열 bool visited[1001][1001]; //방문여부 확인하는 배열 int xarr[4] = { 1,-1,0,0 }; //상,하,좌,우 확인 int yarr[4] = { 0, 0, 1, -1 }; string temp = ""; int idx = 1; int cnt; void dfs(int a, int b) //이동할수 있는 구역..

반응형