목록알고리즘 (508)
어흥
문제 링크: www.hackerrank.com/challenges/crush/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=arrays Array Manipulation | HackerRank Perform m operations on an array and print the maximum of the values. www.hackerrank.com 1. 주의할 점 - 각 쿼리를 입력 받을 때 마다 모든 배열에 값을 추가하지 않는다 -> TLE 발생 2. 구현 - 아이디어가 떠오르지 않아서 Discussion에 적혀 있는 다른 사람의 풀이를 참조하여 해결했다. - 방법은 현재 배열의 값: 현..
문제 링크: www.hackerrank.com/challenges/minimum-swaps-2/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=arrays Minimum Swaps 2 | HackerRank Return the minimum number of swaps to sort the given array. www.hackerrank.com 1. 주의할 점 - O(N^2)이 발생하지 않도록 한다 2. 구현 - 현재 위치에 맞는 값이 들어있는 경우 다음 값을 확인한다 - 맞는 값이 들어 있지 않은 경우, 현재 위치에 있는 값 Num과 Arr[Num-1]의 값을 스왑한다(배열의 번호는 0부터..
문제 링크: www.acmicpc.net/problem/20366 20366번: 같이 눈사람 만들래? 높이가 (2, 5), (3, 5)로 구성된 눈사람 둘을 만드는 것이 최적의 경우 중 하나이다. |7-8| = 1 다른 경우로는 (2, 9), (5, 5)로 두 눈사람을 만드는 경우가 있다. |11-10| = 1 www.acmicpc.net 1. 주의할 점 - 4개의 수를 어떤 방식으로 뽑을 것인지 잘 생각한다 - 정렬 이후, 인접합 4개를 조작하여 답을 구할 경우, 반례가 존재한다. 반례) 6 1 2 1000 2000 10001 10002 답: 0 2. 구현 - 조합을 통해 2개 공의 합이 나타낼 수 있는 높이를 벡터에 저장한다. 이때, 벡터는 사용한 번호 2개, 2개의 합 총 변수가 3개인 구조체 형태..
문제 링크: www.hackerrank.com/challenges/ctci-array-left-rotation/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=arrays Arrays: Left Rotation | HackerRank Given an array and a number, d, perform d left rotations on the array. www.hackerrank.com 1. 주의할 점 - D번 수행할 때 마다 1칸씩 앞으로 당기지 않도록 한다(O(A.size()*D)) 2. 구현 - 크기가 A.size()인 벡터 V[]를 생성한다 - A의 원소가 D만큼 왼쪽으로 가면, ..
문제 링크: www.hackerrank.com/challenges/2d-array/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=arrays 2D Array - DS | HackerRank How to access and use 2d-arrays. www.hackerrank.com 1. 주의할 점 - H가 90도 뒤집어진 모양의 합을 어떻게 구할 것인가 - 정답이 음수일 수도 있다 2. 구현 - H의 중심점을 기준으로 상하좌우 최대 1칸씩만 떨어져있다. 따라서 중심점을 기준으로 Arr[][] 배열을 탐색할 때, 1~Row-1, 1~Col-1까지만 계산한다 - dx[], dy[] 배열을 통해 ..
문제 링크: www.hackerrank.com/challenges/find-the-nearest-clone/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=graphs Find the nearest clone | HackerRank Find the shortest path length between any two nodes with the given condition. www.hackerrank.com 1. 주의할 점 - BFS를 통해 해결하여 TLE가 나지 않도록 한다 - 방문여부를 기록해둔다 2. 구현 - 모든 간선에 대한 정보를 V[] 벡터에 담는다 - Idx: 현재 Node번호, Val..
문제 링크: 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/truck-tour/problem Truck Tour | HackerRank Solve the truck tour problem. www.hackerrank.com 1. 주의할 점 - 기름과 거리는 1:1 비율이다 2. 구현 - 파라미터로 넘겨받은 자료를 통해 각 지점에서 다음 지점까지 사용되는 자원?을 구한다. 자원은 (해당 지역에서 충전할 수 있는 기름 양 - 다음 정류장까지의 거리)로 구한다 -> 1:1 비율이므로 - 위의 값들은 Cost[] 배열에 담는다 - For문 * While문을 통해 현재 자원의 값을 Sum에 저장하며, 처음위치에 도달할때까지 Sum이 음수가 아니라면 한 바퀴 도는 작업이 가능하기 때문에 시작점을 출력한다 l..