목록전체 글 (591)
어흥
문제 링크: www.hackerrank.com/challenges/insert-a-node-at-a-specific-position-in-a-linked-list/problem?h_r=internal-search Insert a node at a specific position in a linked list | HackerRank Insert a node at a specific position in a linked list. www.hackerrank.com 1. 주의할 점 - 단방향 링크 리스트 노드로 인해 파라미터로 받은 Head에 대한 정보를 가지고 있어야 한다 2. 구현 - 새로운 단방향 링크 리스트 노드인 Node를 넘겨받은 head와 같은곳을 가리키도록 한다 - Position이후에 바로 추..
문제 링크: www.hackerrank.com/challenges/insert-a-node-at-the-head-of-a-linked-list/problem?h_r=internal-search Insert a node at the head of a linked list | HackerRank Create and insert a new node at the head of a linked list www.hackerrank.com 1. 주의할 점 - 구조체에 익숙해져 있으면 쉽다 2. 구현 - 기존의 SingleLinkList 앞에 새로운 Data를 추가하는 형태이므로, 새로운 데이터를 담는 Node를 생성한다 - 이후, 생성한 Node의 next로 파라미터로 받은 llist를 할당한다 SinglyLinke..
문제 링크: www.hackerrank.com/challenges/insert-a-node-into-a-sorted-doubly-linked-list/problem Inserting a Node Into a Sorted Doubly Linked List | HackerRank Create a node with a given value and insert it into a sorted doubly-linked list www.hackerrank.com 1. 주의할 점 - List의 가장 앞 혹은 뒤에 추가되는 경우를 조심한다 2. 구현 - 2가지의 방법을 통해 구현해봤다 [List 생성] - DoublyLinkedList* list라는 새로운 리스트를 생성한다 - 추가되었는지의 여부를 Add 변수를 통해 ..
문제 링크: www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 1. 주의할 점 - 시간제한이 엄격하여 substr로 하면 TLE 발생한다 - 커서를 기준으로 앞의 문장과 뒤의 문장을 따로 저장한다 2. 구현 - 커서를 기준으로 앞의 문장은 Deque에, 뒤는 Stack에 저장한다 - 초기에 커서는 입력받은 문자의 맨 뒤에 위치하므로 Deque에 문자열을 전부 넣는다 - 명령어가 L이 들어왔다면, 왼쪽으로 커서를 움직여야하므로 덱이 비어있지 않다면 맨 뒤의 원소 ..
문제링크: www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 1. 주의할 점 - 레이저가 쏘아질 때, 얼만큼 값이 추가되는지 확인한다 - 끝처리를 어떻게 할지 생각한다 2. 구현 - 레이저는 항상 () 형태로 입력되므로 '('다음에 ')'가 있으면 레이저, 없으면 쇠막대기의 연장선이라고 생각한다 - 쇠막대기면 Stack에 '('를 추가한다 - 레이저라면 Stack의 크기만큼 Result에 더한다(레이저를 기준으로 왼쪽 부분 추가) - 쇠막대기가 끝났다면, Result++..
문제 링크: www.acmicpc.net/problem/9372 9372번: 상근이의 여행 첫 번째 줄에는 테스트 케이스의 수 T(T ≤ 100)가 주어지고, 각 테스트 케이스마다 다음과 같은 정보가 주어진다. 첫 번째 줄에는 국가의 수 N(2 ≤ N ≤ 1 000)과 비행기의 종류 M(1 ≤ M ≤ 10 000) 가 www.acmicpc.net 1. 주의할 점 - DFS, BFS, MST, 한줄 모두 가능 - 허무주의 2. 구현 [BFS] - 시작점을 1로 잡고(아무점이나 상관없다) Queue에 넣고 BFS를 수행한다. 방문하지 않은 Node가 있으면 Result++하고 Queue에 넣는다 #include #include #include using namespace std; vector v[1001];..
문제 링크: 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;..