Algorithm/HackerRank 11

Walking the Approximate Longest Path

출처 : 해커 랭크난이도 : 어려움알고리즘 : NP Jenna는 큰 지도를 포함하는 컴퓨터 게임을 하고 있습니다. n도시는 순차적으로 번호가 매겨짐 1에게 n에 의해 연결되어 있습니다 m양방향 도로. 게임의 목표는 한 도시를 두 번 이상 방문하지 않고 최대한 많은 도시를 여행하는 것입니다. 플레이어가 더 많은 도시를 방문할수록 더 많은 점수를 획득합니다.해커랜드 대학교에서 제나의 동기생으로 활동하는 그녀는 최적의 경로를 선택하는 데 도움을 요청합니다. 지도를 참고하여 제나가 점수를 최대화하는 경로를 찾도록 도와줄 수 있나요?참고: 그녀는 두 개의 서로 다른 도시에서 경로를 시작하고 끝낼 수 있습니다.입력 형식첫 번째 줄에는 각각의 값을 설명하는 공백으로 구분된 두 개의 정수가 포함됩니다.(도시의 수)와..

Jesse and Cookies

출처 : 해커 랭크난이도 : 중간알고리즘 : 우선순위 큐 제시는 쿠키를 좋아하고 쿠키의 단맛이 가치보다 더 높기를 원합니다.이를 위해 단맛이 가장 적은 쿠키 두 개를 반복적으로 섞습니다. 이렇게 하면 다음과 같은 요소들이 결합된 특별한 쿠키가 만들어집니다.단맛 = (1 x 가장 단맛이 적은 쿠키 + 2 x 2번째로 단맛이 적은 쿠키 ).이것은 모든 쿠키가 달콤해질 때까지 발생합니다. ≥ k.쿠키 개수의 단맛을 고려하여 필요한 최소 연산 수를 결정하세요. 만약 불가능하다면 다음을 반환하세요. -1.예k = 9A = [2, 7, 3, 6, 4, 6]가장 작은 값은 2, 3.제거한 후 다시 돌려주세요 2 + 2 x 3 = 8 배열에. 지금 A = [8, 7, 6, 4, 6].제거하다 4, 6 그리고 돌아오..

Recursive Digit Sum

출처 : 해커 랭크난이도 : 중간알고리즘 : 재귀 우리는 정수의 상위 자릿수를 정의합니다.다음 규칙을 사용합니다.정수가 주어졌을 때, 그 정수의 가장 큰 자리수를 찾아야 합니다 .만약에 x만 가지고있다 1숫자이면 그 슈퍼 숫자는 x.그렇지 않으면, 슈퍼 디지트 x는 각 자리수의 합의 상위 자리수와 같습니다. x.예를 들어, 슈퍼 디지트 9875다음과 같이 계산됩니다. super_digit ( 9875 ) 9 + 8 + 7 + 5 = 29 super_digit ( 29 ) 2 + 9 = 11 super_digit ( 11 ) 1 + 1 = 2 super_digit ( 2 ) = 2 예n = '9875'k = 4숫자 p문자열을 연결하여 생성됩니다 n,k 그래서..

Connected Cells in a Grid

출처 : 해커 랭크난이도 : 중간알고리즘 : DFS 각 셀에 다음이 포함된 행렬을 고려하십시오. 0또는 1. 다음을 포함하는 모든 셀 1를 채워진 셀 이라고 합니다 . 두 셀이 수평, 수직 또는 대각선으로 인접해 있으면 서로 연결되어 있다고 합니다 . 다음 표에서 로 표시된 모든 셀은 로 X표시된 셀에 연결되어 있습니다 Y.XXXXYX XXX 하나 이상의 채워진 셀이 연결되어 있으면 영역을 형성합니다 . 영역의 각 셀은 해당 영역 내의 0개 이상의 셀과 연결되어 있지만, 반드시 해당 영역의 다른 모든 셀과 직접 연결되어 있는 것은 아닙니다.주어진 n x m행렬에서 가장 큰 영역 에 있는 세포의 개수를 구하여 출력하세요 . 행렬에는 두 개 이상의 영역이 있을 수 있습니다.예를 들어, 다음에는 두 ..

Red Knight's Shortest Path

출처 : 해커 랭크난이도 : 중간알고리즘 : BFS 일반 체스에서는 말이 검은색과 흰색, 두 가지 색으로만 구성됩니다. 하지만 저희 체스 버전에서는 독특한 움직임을 가진 새로운 말을 추가했습니다. 이 버전에서 가장 강력한 말 중 하나는 빨간색 나이트 입니다 .아래 그림에서 볼 수 있듯이 붉은색 기사는 현재 위치를 기준으로 여섯 가지 다른 위치(상단 왼쪽, 상단 오른쪽, 오른쪽, 하단 오른쪽, 하단 왼쪽, 왼쪽)로 이동할 수 있습니다.보드는 크기의 격자입니다 n x n 각 셀은 좌표 쌍으로 식별됩니다. (i,j), 어디 i행 번호이고 j는 열 번호이며 둘 다 0부터 인덱스됩니다. 따라서 (0, 0),왼쪽 상단 모서리입니다. (n - 1, n - 1)오른쪽 하단 모서리입니다.printShortestPath그..

The Coin Change Problem

출처 : 해커 랭크난이도 : 중간알고리즘 : DP 금액과 사용 가능한 동전의 종류가 주어졌을 때, 금액을 몇 가지 방법으로 바꿀 수 있는지 계산해 보세요. 각 동전 종류는 무한대로 공급됩니다.예n = 3c = [8, 3, 1, 2]있다변화를 만드는 방법 n = 3: {1,1,1},{1.2} 그리고{3}.기능 설명아래 편집기에서 getWays 함수를 완성하세요 .getWays에는 다음과 같은 매개변수가 있습니다.int n: 잔돈을 만들 금액int c[m]: 사용 가능한 동전 종류보고int: 변경을 만드는 방법의 수입력 형식첫 번째 줄에는 공백으로 구분된 두 개의 정수가 포함됩니다.그리고, 어디:n 변경할 금액입니다m 동전 종류의 수입니다.두 번째 줄에는 다음이 포함됩니다.각 동전 유형의 값을 설명하는 공백..

Marc's Cakewalk

마크는 컵케이크를 좋아하지만, 건강 관리도 좋아합니다. 컵케이크 하나당 칼로리가 정해져 있고, 마크는 그 칼로리를 소모하기 위해 먼 거리를 걸을 수 있습니다. 만약 마크가 지금까지 먹은 컵케이크는 j. 컵케이크를 먹은 후 그는 적어도 걸어야 할 칼로리 c. 체중을 유지하기 위해 2^j x c마일을 이동했습니다.예calorie = [5, 10, 7]그가 표시된 순서대로 컵케이크를 먹는다면 그가 걸어야 할 마일은 다음과 같습니다.(2^0 x 5) + (2^1 x 10) + (2^2 x 7) = 5 + 20 + 28 =53.하지만 이는 최소값이 아니므로 다른 소비 순서를 테스트해야 합니다. 이 경우 최소 마일리지는 다음과 같이 계산됩니다..(2^0 x 10) + (2^1 x 7) + (2^2 x 5) = 10..

Candies

출처 : 해커 랭크난이도 : 중간알고리즘 : Greedy 앨리스는 유치원 선생님입니다. 그녀는 반 아이들에게 사탕을 나눠주고 싶습니다. 모든 아이들은 일렬로 앉아 있고, 각자 수업 성적에 따라 점수를 받습니다. 앨리스는 각 아이에게 최소 사탕을 하나씩 주고 싶어 합니다. 만약 두 아이가 나란히 앉으면, 점수가 높은 아이가 사탕을 더 많이 가져야 합니다. 앨리스는 자신이 사야 하는 사탕의 총 개수를 최소화하려고 합니다.예arr = [4, 6, 4, 5, 6, 2]그녀는 학생들에게 다음과 같은 최소한의 양의 사탕을 줍니다.[1,2,1,2,3,1]그녀는 최소한 사탕 10개 를 사야 합니다.기능 설명아래 편집기에서 사탕 기능을 완성하세요 .사탕에는 다음과 같은 매개변수가 있습니다.int n: 학급의 어린이 수i..

Minimum Loss

로렌은 향후 몇 년간 주택 가격의 예상 차트를 가지고 있습니다. 그녀는 어떤 해에는 집을 사고, 다른 해에는 팔아야 하는데, 손해를 감수해야 합니다. 그녀는 재정적 손실을 최소화하고 싶어 합니다.예price = [20, 15, 8, 2, 12]그녀의 최소 손실은 1년 동안 구매함으로써 발생합니다. 2일에 구매하고(15), 5일에 재판매(12). 15 - 12 = 3.기능 설명아래 편집기에서 minimumLoss 함수를 완성하세요 .minimumLoss에는 다음과 같은 매개변수가 있습니다.int price[n]: 매년 주택 가격보고int: 가능한 최소 손실입력 형식첫 번째 줄에는 정수가 포함됩니다. n, 주택 데이터의 연도 수입니다.두 번째 줄에는 다음이 포함됩니다. n각각을 설명하는 공백으로 구분된 긴 ..