목록전체 글 (591)
어흥
문제 링크: 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.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.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.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, 사용한 오른쪽회전 주문서..
문제 링크: www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 1. 주의할 점 - 매 TC마다 구하지 않고, 각 열의 1~N까지의 합을 Arr[][N]에 저장한다 2. 구현 - Arr[M][N] = Arr[M][N-1] + [M][N]에 입력받는 수를 저장한다 - 각 쿼리마다 Arr[][Y2]-Arr[][Y1-1] 까지의 합을 X1~X2행까지 수행하여 출력한다 #include using namespace std; lo..
문제 링크: 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.acmicpc.net/problem/20005 20005번: 보스몬스터 전리품 입력의 첫째 줄에는 멤멤월드의 지도의 크기를 나타내는 두 정수 M(6 ≤ M ≤ 1000), N(6 ≤ N ≤ 1000)과 플레이어의 수 P(1 ≤ P ≤ 26)가 주어진다. M은 지도의 세로 길이, N은 지도의 가로 길이이다. 입 www.acmicpc.net 1. 주의할 점 - AC가 나와도 필요없는 작업은 하지 않도록 노력한다(Ex. '각 플레이어->보스까지의 거리' 대신 보스->각 플레이어까지의 거리) - 보스가 플레이어에게 도달해도 4방향 이동은 이어서 한다 2. 구현 - 2가지의 방법으로 풀었다(단, BFS의 방법은 같다) (0) 공통(BFS) - 보스를 위치를 기준으로 큐에 담아서 각 플레이어까지..