전체 글
-
[c++][구현] 백준 21918번: 전구알고리즘 2022. 1. 20. 14:27
코드 #include using namespace std; int main() { int n, m; int s[4000] = { 0 }; cin >> n >> m; for (int i = 0; i > s[i]; } for (int i = 0; i > a >> b >> c; if (a == 1) { s[b - 1] = c; } else if (a == 2) { for (int j = b - 1; j < c; j++) { if (s[j]) s[j] = 0; else s[j] = 1; } } else if (a == 3) { for (int j = b - 1; j < c; j++) { if (s[j]) s[j] = 0; } }..
-
[c++][시뮬레이션] 백준 1713번: 후보 추천하기알고리즘 2022. 1. 18. 16:16
문제풀이 1. 먼저 2차원 배열을 이용해 학생들의 번호에 맞게 추천 받은 순서와 추천 받은 수를 저장할 수 있도록 만든다. 2 - 1. 이미 후보에 올라가있는 학생은 추천 수를 증가시킨다. 2 - 2. 후보에 올라가지 않은 학생이 추천 받을 경우 2-2-1. 사진틀이 남아있을 경우 학생의 추천 순서와 추천받은 수를 변경한 후 사진 수를 증가시킨다. 2-2-2. 사진틀이 남아있지 않을 경우 2-2-2-1. 가장 적은 추천을 받은 학생을 고른다. 2-2-2-2. 가장 적은 추천을 받은 학생이 둘 이상일 경우 그 학생들 중 오래 전에 추천 받은 학생을 고른다. 2-2-2-3. 위에서 고른 학생은 순서와 추천수를 0으로 만들고, 추천 받은 학생의 순서와 추천 수를 변경 코드 #include using names..
-
[c++][완전탐색][브루트 포스] 백준 2798번: 블랙잭알고리즘 2022. 1. 14. 16:00
문제풀이 완전탐색을 구현할 수 있는 방법은 브루트 포스, 재귀함수, 순열, BFS/DFS 등 있지만 여기서는 간단한 브루트 포스를 사용하여 문제를 해결하였다. 코드 #include #include using namespace std; //브루트 포스(Brute-Force) int main() { int n, m; // 카드의 개수, 딜러의 숫자 int card[100] = { 0 }; int sum = 0; int max = sum; cin >> n >> m; for (int i = 0; i > card[i]; } for (int i = 0; i < n - 2; i++) { for (int j = i + 1; j < n - 1; j++) { for (int k = j + 1..
-
[c++][그래프] 백준 1260번: DFS와 BFS알고리즘 2022. 1. 13. 15:49
문제풀이 1. 메인 함수에서 2차원 벡터에 그래프 데이터를 저장한다. 2. 인접한 노드가 여러 개인 경우 정점 번호가 작은 것부터 방문하는 조건에 만족시키기 위해 정렬을 한다. 3. DFS(깊이 우선 탐색)는 재귀함수나 스택으로 구현한다. 4. BFS(너비 우선 탐색)는 큐로 구현한다. 코드 #include #include #include #include using namespace std; vector graph; vector g; bool dfs_visited[1000] = { false }; bool bfs_visited[1000] = { false }; void DFS(int v) { dfs_visited[v] = true; cout m >> v; graph.resize(n + 1); graph...
-
[c++][구현] 백준 20053번: 최소, 최대 2알고리즘 2022. 1. 5. 16:36
문제 풀이 1. 배열을 사용하여 해결 2. 배열을 사용하지 않고 해결 코드 1. 배열에 저장하여 정렬을 사용하여 해결 #include #include using namespace std; int main() { cout.tie(NULL); cin.tie(NULL); ios::sync_with_stdio(false); int test; cin >> test; for (int t = 0; t > n; for (int i = 0; i > m[i]; } sort(m, m + n); cout n; for (int i = 0; i > m; if (min..
-
[c++][시뮬레이션] 백준 20436번: ZOAC 3알고리즘 2022. 1. 4. 20:30
문제 풀이 1. 키보드 위치를 저장해둔다. 2. 오른손과 왼손의 시작 위치를 저장한다. 3. 입력받은 문자에 따라 손의 이동거리를 계산한다. 코드 #include #include using namespace std; int main() { // 왼손의 키보드 char s_l[] = { 'q','w','e','r','t', 'a','s','d','f','g', 'z','x','c','v' }; int s_l_p[][2] = { {0,0}, {0,1}, {0,2}, {0,3}, {0,4}, {1,0}, {1,1}, {1,2}, {1,3}, {1,4}, {2,0}, {2,1}, {2,2}, {2,3} }; // 오른손의 키보드 char s_r[] = { 'y','u','i','o','p', 'h','j','k..