목록구현 (98)
어흥
문제 링크: 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/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..
문제 링크: www.hackerrank.com/challenges/maximum-element/problem?utm_campaign=challenge-recommendation&utm_medium=email&utm_source=24-hour-campaign Maximum Element | HackerRank Given three types of queries, insert an element, delete an element or find the maximum element in a stack. www.hackerrank.com 1. 주의할 점 - 최대값을 어떤 방식으로 저장하고 있을 것인가 - Stack에서 Pop한 이후, Stack이 비었다면 최대값은? 2. 구현 - Info 형태의 구조체를 담는 S..
문제 링크: www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 1.주의할 점 - 메모리의 제한이 극단적이니 배열의 크기를 최소로 한다 2. 구현 - 각 줄을 Arr[]배열에 입력받는다 - 만약 첫 번째 줄이라면, Maxi[1][], Mini[1][] 배열에 그대로 값을 대입한다. Maxi[0][] 배열은 t번째 숫자를 입력받기전인 t-1번까지의 최대 점수를 저장하는 배열이다. Maxi[1][] 배열은 t번째 숫자를 받은 후, t번째까지의 최대 점수를 저장하는 배열이다. Mi..
문제 링크: www.acmicpc.net/problem/20422 20422번: 퀼린드롬 (Easy) 7과 r이 완전히 거울 대칭으로 보이지는 않지만, 상민이는 이 정도로 비슷하면 인정하기 때문에 거울 대칭 표에 7과 r은 거울 대칭이라고 적었다. www.acmicpc.net 1. 주의할 점 - 대칭되는 문자들을 미리 Map에 저장한다 - 하나하나씩 조건들을 만족하면서 풀어나간다 - 문자열의 길이가 홀수일 경우, 가장 중간에 위치한 문자열은 자기자신이 대칭이여야 한다 2. 구현 - make_map() 함수를 통해 대칭되는 문자들을 미리 Map에 저장한다 - (문자열의 길이+1)/2만큼 문자들을 비교한다 -> 위의 파란색 조건을 비교하기 위해 - 양끝에서부터 안쪽으로 차례대로 문자들을 비교한다 - 왼쪽에서..
문제 링크: www.acmicpc.net/problem/20419 20419번: 화살표 미로 (Easy) 첫번째 줄에는 미로의 행 R, 열 C, 준서가 가진 주문서 세트의 개수 K가 주어진다. 두번째 줄부터 R줄에 걸쳐 화살표 미로의 지도가 입력된다. 각 줄마다 "UDLR"로만 이루어진 길이 C의 문자열이 입 www.acmicpc.net 1. 주의할 점 - 주문서는 최대 1개 가질 수 있다 - 주문서는 왼쪽, 오른쪽 회전 1개가 세트다 2. 구현 - 미로를 입력받으면서 Check[][] 배열을 3으로 초기화시킨다. Check[][] 배열은 해당 지점에 몇개의 주문서를 사용해서 도착했는가?에 대한 정보를 담고있다 -> 시간절약위해 사용 - DFS()를 수행하며, 변수로는 Y, X, 사용한 오른쪽회전 주문서..