목록큐 (4)
어흥
문제 링크: www.hackerrank.com/challenges/queue-using-two-stacks/problem?h_r=profile Queue using Two Stacks | HackerRank Create a queue data structure using two stacks. www.hackerrank.com 1. 주의할 점 - Dequeue를 진행할때 마다 여분 스택을 이용하여 스택 전체를 옮기고 빼고 다시 옮기는 일이 없도록 한다 -> TLE 발생 2. 구현 - Enqueue를 수행하는 Stack S, Dequeue에 활용될 Stack os를 사용한다. OS에는 Stack S에 담겨있던 원소들이 역순으로 채워진다 - Front라는 변수를 통해 Queue의 Front에 위치한 수를 저장..
문제링크: www.hackerrank.com/challenges/tree-level-order-traversal/problem Tree: Level Order Traversal | HackerRank Level order traversal of a binary tree. www.hackerrank.com 1. 주의할 점 - Queue를 이용하여 구조체를 담도록 한다. 2. 구현 - Queue q를 이용하여 Node형태의 원소를 담을 수 있는 큐를 생성한다 - Root가 nullptr이 아니라면 큐에 넣고, While문을 큐에 원소가 없을때까지 수행한다 - 큐에서 원소를 1개 뽑은 후, 해당 값을 출력하고 해당 Node의 왼쪽, 오른쪽 자식이 있으면 순서대로 큐에 넣는다 queue q; void level..
문제 링크: https://www.acmicpc.net/problem/16933 16933번: 벽 부수고 이동하기 3 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000), K(1 ≤ K ≤ 10)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 항상 0이라고 가정하자. www.acmicpc.net 1. 주의할 점 - BFS를 잘못 사용할 경우 시간초과가 발생한다 - K의 값이 0~10이므로 Check[1000][1000][11]로 설정해야 한다 -> 11 대신 10을 사용할 경우 틀린다 - 낮의 경우에만 벽을 부술 수 있다 2. 구현 - 벽 부수고 이동하기 1이나 2와 비슷한 방법을 사용하지만, 낮과 밤의 구분을 추가한다 - 낮일 경우(Sun..
문제 링크: https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다. 셋째 줄에는 지울 노드의 번호가 주어진다. www.acmicpc.net 1. 주의할 점 - For문을 최대한 덜 사용하도록 한다. - 배단 Vector를 통해 자식의 정보를 저장한다 - Boolean 배열을 사용하여 해당 Node가 삭제되었는지 확인한다 2. 구현 - 큐를 사용하여 지우려는 Node를 큐에 삽입하고 해당 Node의 Erased 배열값을 True로 설정한다. - 큐에서 Pop을 통해 얻은 N..