큐
-
16236.아기상어알고리즘/백준 BAEK JOON 2020. 5. 31. 15:06
이번에 풀어볼 문제는 백준 16236의 아기상어이다. 시뮬레이션 + 탐색의 문제이며 요즘 점점 설계의 중요성을 깨닫는다. 이 문제를 잘 풀기 위해서는 자신이 구하고자하는 내용들의 순서로직의 설계를 잘해주어야 한다. 아직 설계능력이 많이 미숙한 것 같다. 하다보면 늘겠지.. 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가�� www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ..
-
2468.안전영역알고리즘/백준 BAEK JOON 2020. 5. 26. 23:01
이번에 풀어볼 문제는 백준의 2468 안전영역이다. BFS, DFS(재귀,스택,큐)로 풀이가 가능하다. 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 � www.acmicpc.net 나는 BFS를 이용해서 풀이를 진행하였고 난이도는 역시 그렇게 어려운 편은 아니다!! 모든 문제가 그렇지만 설계단계를 잘생각해서 진입해야 헤매지 않고 풀이에 성공할 수 있다. 이 문제는 직전에 포스팅 한 문제들과 다를 바없이 탐색이 문제를 푸는관건이 아니라 탐색 이전까지의 로직을 구현해내는 것이 관건인 문제이다. 이 문제에서는 물에 잠기는 최소높이와 최고높이를 저..
-
11866.요세푸스 문제 0알고리즘/백준 BAEK JOON 2020. 4. 6. 23:57
이번 문제는 백준의 11866 요세푸스 문제 0이다.11866번: 요세푸스 문제 0첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)www.acmicpc.net문제를 이해하는 건 금방했는데 원형으로 배열을 만들어야하나 하는 생각을 했고굳이 그럴 필요가 없다고 생각해서 포인터로 예외처리를 하려고 하였으나너무나 비효율적이었고 결국 queue를 사용해서 풀었다. 조금만 쉽게 생각하면 됬는데.. 허허.. #include #include using namespace std; int main() { int n, k; cin >> n >> k; // 길이와 K번째 순서 입력 queueq; // queue for(int i=1; i
-
1874.스택 수열알고리즘/백준 BAEK JOON 2020. 4. 2. 23:59
이 문제는 그렇게 어려운 문제는 아니였지만 굉장히 헷갈리긴 했다. Stack과 Queue문제를 꽤 풀어본 것이 도움이 되었던 것 같다. 스택과 큐에 대한 다른문제들도 풀었지만 난이도가 너무 쉽다고 느껴 굳이 남기지 않았다. 하지만 처음에 문제를 거꾸로 이해해버렸고 반례를 만나서야 잘못 이해했다는 것을 알아챘다. 아직 반례를 생각해 내는 것이 굉장히 서툰 것 같다.. 어쨌든 결과적으로 다 구현하고 나서 시간초과가 났는데 그러한 이유는 아래와 같다. #include #include #include using namespace std; int main() { queueans; // 부호정답이 저장될 queue queue q; // 입력받을 queue stack t; // 수열이 가능한지 ..
-
1226.미로1 & 1227.미로2알고리즘/SW Expert Academy 2020. 3. 26. 00:16
이번문제는 미로1과 미로2이다. 문제는 간단하다. 주어진 출발지에서 주어진 목적지까지 갈 수 있나 없나를 체크하는 알고리즘을 구현하는 것이고 나는 DFS를 이용하기로 했다. 문제는 queue강의에서 출제되었지만 나는 DFS를 Stack을 이용해서 구현해보았다. 앞서 stack과 queue를 나름 많이 다뤄보아서인지 사용이 자연스러워진거같다. 처음 시작할 때는 분명 헷갈렸던 것 같은데.. ㅎㅎ 미로1과 미로2는 MAX를 16이나 100이냐 말고 코드가 달라진게 없어서 한 번에 포스팅했다. #include #include #include using namespace std; #define MAX 16 // 100 int dx[4]={-1,1,0,0}; // X축 이동 int dy[4]=..
-
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()
-
1223.계산기2알고리즘/SW Expert Academy 2020. 3. 23. 21:59
이번에 풀어볼 문제는 SW expert에 있는 계산기2이다. 계산기1과 달라진 점은 예상했던대로 예외처리가 늘어나 '+' 뿐아니라 '*'도 비교해야 한다는 것이다. 역시나 예외처리를 잘해주면 쉽게 풀 수 있을 것 같다. 나는 연산자의 경우 Stack에 넣고 피연산자는 Queue에 넣어서 계산하도록 했다. 후위계산법의 방식은 다른 블로그에 많으니 참고하면 될 거 같다. #include #include #include using namespace std; int main() { int n; for(int k=1; k> n; string str; // 문자열 입력 cin >> str; stack s; // 연산자 저장공간 queue q; // 피연산자 및 후위계산식이 완성될 공간 for(..