목록hackerrank (54)
어흥
문제 링크: www.hackerrank.com/challenges/is-binary-search-tree/problem Is This a Binary Search Tree? | HackerRank Given the root of a binary tree, you have to tell if it's a binary search tree. www.hackerrank.com 1.주의할 점 - BST의 조건에 대해 정확히 알고 있어야한다. 특정 Node를 기준으로 왼쪽의 Subtree들의 값은 특정노드의 값보다 전부 작아야하고, 오른쪽의 Subtree들은 특정노드의 값보다 전부 커야한다 2. 구현 1) [실패했던 방법] - 특정 Node를 기준으로 왼쪽에 tree가 있다면, 왼쪽 자식의 값과 현재 값을 비교 ..
문제 링크: www.hackerrank.com/challenges/sparse-arrays/problem Sparse Arrays | HackerRank Determine the number of times a string has previously appeared. www.hackerrank.com 1. 주의할 점 - Strings에 특정 단어가 몇개 들어있는지 미리 기록한다 - Map을 활용하면 편하다(N: Strings 크기, M: Queries 크기 -> 시간 복잡도: MlgN) 2. 구현 - Strings에 들어있는 단어를 Map m에 형태로 저장한다 - Queries에 포함된 단어가 m에 몇개 들어있는지 Result 벡터에 차례대로 삽입한다 #include using namespace std;..
문제 링크: www.hackerrank.com/challenges/reverse-a-doubly-linked-list/problem Reverse a doubly linked list | HackerRank Given the head node of a doubly linked list, reverse it. www.hackerrank.com 1. 주의할 점 - Node나 NodeList를 이용하여 해결한다 - 현재 문제에선 전부 구현되어있지만, 직접 함수나 구조체를 구현하는 연습을 기른다 2. 구현 - 리버스된 Node를 담는 DoublyLinkedList를 생성한다 - Reverse 함수의 파라미터로 받는 변수가 DoublyLinkedList의 Head를 받았으므로 기존 List의 Tail을 향하도록 ..
문제 링크: www.hackerrank.com/challenges/the-quickest-way-up/problem Snakes and Ladders: The Quickest Way Up | HackerRank Given a Snakes and Ladders board, what is the least number of rolls of the die in which a player can reach the destination square? www.hackerrank.com 0. 유사문제 - 백준의 숨바꼭질 유형 Ex. www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K..
문제 링크: www.hackerrank.com/challenges/3d-surface-area/problem 3D Surface Area | HackerRank Find the surface area of a 3D Toy www.hackerrank.com 1. 주의할 점 - 모형의 표면적을 구하는 문제로, 윗면과 밑면은 항상 가로*세로라는것을 알 수 있다 - 옆면의 경우, 옆면에서 바라봤을 때로 가정하면 4 3 4 과 같은 도형을 8로 인식한다(정답은 10으로, 4와 3사이에 옆면이 양옆으로 1개씩 추가로 존재) 2. 구현 - 윗면과 밑면은 항상 가로*세로이므로 Result = 2*Row*Col로 초기화를 하고 시작한다 - 옆면의 경우, 1열 혹은 행씩 확인하도록 한다 - 해당 줄(열 or 행)의 양끝에..
문제 링크: www.hackerrank.com/challenges/floyd-city-of-blinding-lights/problem?utm_campaign=challenge-recommendation&utm_medium=email&utm_source=24-hour-campaign Floyd : City of Blinding Lights | HackerRank Learn to use Floyd Warshall's algorithm ! www.hackerrank.com 1. 주의할 점 - 모든 점점에 대한 정보 : 플로이드 와샬 알고리즘에 대해 알고있어야 한다 - 시작점과 끝점이 같은 간선이 여러개 입력될 경우, 가장 마지막에 입력된 가중치를 저장한다(본문 참조) 2. 구현 - 간선에 대한 정보를 담는 A..
문제 링크: www.hackerrank.com/challenges/primsmstsub/problem?utm_campaign=challenge-recommendation&utm_medium=email&utm_source=24-hour-campaign Prim's (MST) : Special Subtree | HackerRank Learn to use Prim's algorithm ! www.hackerrank.com 1. 주의할 점 - MST중에서 프림 알고리즘에 대해서 알고 있어야 한다(Edge수가 Node수보다 월등히 많을 때 유리. 반대의 경우, 크루스칼이 유리) 2. 구현 - 간선에 대한 정보를 V[] 벡터에 모두 저장한다 - 간선의 가중치를 기준으로 오름차순으로 정렬되는 우선순위큐 PQ를 생성한..
문제 링크: www.hackerrank.com/challenges/dijkstrashortreach/problem?utm_campaign=challenge-recommendation&utm_medium=email&utm_source=7-day-campaign Dijkstra: Shortest Reach 2 | HackerRank Learn to use Dijkstra's shortest path algorithm ! www.hackerrank.com 1. 주의할 점 - 우선순위큐를 이용한 다익스트라 알고리즘을 사용한다 - 매 TC마다 초기화를 진행한다 2. 구현 - 매 TC 마다 간선의 정보를 담고 있는 V[] 벡터와 각 지점까지의 거리를 저장하는 Dist[] 배열을 초기화한다 - Edges 벡터를 통해..