알고리즘
-
1225. 암호생성기알고리즘/SW Expert Academy 2020. 3. 24. 22:09
이번 문제는 너무 쉽다.. 그래서 딱히 설명보다는 그냥 코드만 남겨두도록 하겠다.. #include #include using namespace std; int main() { for(int k=1; k> num; for(int i=0; i> a; q.push(a); } int count = 1; while(q.back()>0){ if(count>5) count=1; int b = q.front(); b-=count; q.pop(); q.push(b); count++; } if(q.back()
-
1224.계산기3알고리즘/SW Expert Academy 2020. 3. 24. 20:42
드디어 계산기 문제의 마지막 3번째이다. 이전과 똑같이만 이번에는 '(' 와 ')'가 등장해서 살짝 다른 계산이 필요했다. 괄호는 무조건 넣어주고 괄호의 짝이 맞아떨어지게되면 스택에 저장된 괄호의 모든 연산자를 pop해야한다는 것이 특징이었다. 생각보다 오랜시간이 걸리지 않은 문제였다. 물론 나보다 간단하게 푼사람도 많을 것이라고 생각한다. 하지만 스스로 생각하면서 뚝딱 풀어낸 것에 의의를 두어야겠다. #include #include #include #include using namespace std; int main() { int n; for(int k=1; k> n; string str; cin >> str; stack s; // 피연산자들이 담길 stack queue q; //..
-
1222.계산기1알고리즘/SW Expert Academy 2020. 3. 23. 21:59
이번문제는 후위계산식으로 만들어서 계산하는 문제이다. 그렇게 어려운 난이도는 아니였다. 후위계산법을 제대로 이해하고 문제를 풀면된다. 연산자가 '+' 만 주어졌기 때문에 예외처리할게 많지 않았다. 아마 문제에 숫자가 붙은걸로봐서 앞으로 연산자들이 추가될 것 같은 예감이 든다ㅋㅋㅋ 허접한 코드로 일단 푸는 것에 의의를 두었다. #include #include #include #include using namespace std; int main() { int n; for(int k=1; k> n; string str; cin >> str; stack s1; queues2; char v; for(int i=0; i
-
11403.경로찾기알고리즘/백준 BAEK JOON 2020. 3. 16. 23:19
이번에 풀어볼 문제는 백준의 11403 경로찾기이다. 문제를 이해하는게 어려웠던거 같다. 크흠... 이해력을 기르자!! 해당 문제는 정점이 갈 수 있는 경로를 물어보는 문제였다. 정점과 연결된 간선에는 방향이 존재했다는 것이 바로 이 문제의 포인트다! #include #include #include #define MAX 101 // 주의 -> 나는 배열을 0이 아닌 1부터 적용했다. 그러므로 101 using namespace std; int n; // 정점의 수 int arr[MAX][MAX]; // Map bool check[MAX]; // 방문확인 void dfs(int a){ stack s; s.push(a); // n번째 줄 내용 int v = s.top(); // 해당 스..
-
2178. 미로탐색알고리즘/백준 BAEK JOON 2020. 3. 15. 01:06
이번에 풀어볼 문제는 백준의 2178 미로탐색이다. 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net DFS를 이용하여 문제를 풀었다. #include #include using namespace std; #define MAX 100 int dx[4]={-1,1,0,0};// X 좌표 이동범위 int dy[4]={0,0,-1,1};// Y 좌표 이동범위 // -> 상하좌우 int arr[MAX][MAX]; // 미로 int n, m; void bfs(int v, int w){ queueq; q.push(make_pair(..
-
1260. DFS와 BFS ( Stack & Queue 사용 )알고리즘/백준 BAEK JOON 2020. 3. 10. 01:25
이번에 풀어볼 문제는 백준 1260번 이며 완전탐색 알고리즘의 대표 DFS와 BFS이다. # 많은 블로그에서 해당 알고리즘에 대한 자세한 설명이 되어있으니 참고!! 나의 경우는 DFS의 경우 재귀함수를 사용해서 풀어도 되지만 굳이 Stack을 너무나 사용해서 풀고 싶었다. 알고리즘을 다시 시작한지 얼마안되서 꽤 오랜시간이 걸렸지만 그래도 해내서 다행이다:) Stack과 Queue에 대한 개념과 DFS와 BFS의 탐색 과정을 생각하며 구현하면된다! -> 구현을 외우는 것이 아니라 이해하는 것이 중요하고 예외처리를 잘 하는것이 가장 중요한 Point다! #include #include #include #define MAX 1001 using namespace std; int n, m, ..
-
1218. 괄호 짝짓기 풀이알고리즘/SW Expert Academy 2020. 3. 4. 19:34
이번에 풀어볼 문제는 괄호 짝짓기이다. 알고리즘 문제는 간단하게 풀이만 적도록 하려고 한다. 대충 이러한 문제이다. * 이번 문제를 풀면서 중요하게 기억해야할 내용 * 1. stack 사용법과 다음 테스트 케이스를 위해 stack을 비워줘야함 2. 어떤식으로 탐색을 진행할 것인지 파악 -> 한쪽 형태의 모양을 스택에 우선 넣고나서 비교 3. 가장 중요한건 문제를 제대로 파악하는 것 -> 단순히 짝만 맞추는 것이 아니다. 문제에는 상세히 설명하지 않아서 안나왔지만 가장 처음과 마지막은 괄호는 항상 '(' ')' 이런식으로 닫는 형태여야하며 ')' '(' 이렇게 는 자릴 바꾸면 한쌍이겠지만 문제에서는 한쌍으로 인정하지 않는다... #include #include using namespace std; int ..