초사각형은 k 차원을 갖는 직사각형입니다. 각 차원의 길이는 n1, n2, n3,....., nm로 표시할 수 있습니다. 초사각형의 셀은 (p,q,r,...)로 지정되며 (p,q,r,...)의 gcd와 동일한 값을 포함합니다. 여기서 1 <=p <=n1, 1 <=q <=n1 등입니다. 우리의 임무는 모든 셀 값 gcd(p,q,r,...)의 합을 결정하는 것입니다. 결과는 모듈로 10^9 + 7로 반환됩니다. 인덱싱은 1에서 n까지 수행됩니다. 따라서 입력이 input_arr =[[2, 2], [5, 5]]와 같으면 출력은 [5,
게임 쇼에서 원으로 배열된 2n개의 방이 있다고 가정합니다. 방 중 하나에는 참가자가 수집해야 하는 상품이 있습니다. 방의 번호는 1, 2, 3,...., n, -n, -(n - 1),...., -1입니다. 시계 방향으로. 각 방에는 문이 있고 그 문으로 다른 방을 방문할 수 있습니다. 모든 문에는 x 표시가 있습니다. 이는 다른 방이 현재 방에서 x 거리에 있음을 의미합니다. x 값이 양수이면 해당 방에서 시계 방향으로 x번째 방으로 문이 열립니다. x의 값이 음수이면 방이 시계 반대 방향으로 x번째 방으로 열립니다. 경품을 보관
각 정점에 1에서 n까지 레이블이 지정된 n개의 정점이 있는 트리가 있다고 가정합니다. 트리의 루트는 레이블이 1이고 각 정점의 가중치는 wi입니다. 이제 A(x,y) =Wf(x, y)인 nxn 행렬 A가 형성됩니다. 여기서 f(x, y)는 정점 x와 y의 최소 공통 선행자입니다. 행렬 A의 행렬식을 찾아야 합니다. 행렬의 모서리, 가중치 및 총 정점 수가 입력으로 제공됩니다. 따라서 입력이 input_array =[[1, 2], [1, 3], [1, 4], [1, 5]]와 같으면 weights =[1, 2, 3, 4, 5], 꼭
여러 정수를 포함하는 배열이 있다고 가정합니다. 주어진 숫자 배열에서 모든 인접한 하위 배열을 찾아 다른 목록에 넣습니다. 이제 각 하위 배열을 해당 하위 배열의 최대 요소로 바꿉니다. 또한 우리에게 주어진 숫자 k가 있으며, 우리는 이제 얼마나 많은 부분배열이 주어진 숫자보다 큰지 알아내야 합니다. 따라서 입력이 input_array =[5, 6, 7, 8], k =7과 같으면 출력은 4가 됩니다. 지정된 입력 배열의 연속 하위 배열은 {5}, {6}, {7}, {8}, {5, 6}, {6, 7}, {7, 8}, {5, 6,
주어진 문자열 명령을 해석할 수 있는 Goal Parser가 있다고 가정합니다. 명령은로 구성됩니다. 알파벳 G, 여는 괄호와 닫는 괄호 () 및/또는 (al) 어떤 순서로. Goal Parser는 G를 문자열 G로, ()를 o로, (al)을 문자열 al로 해석합니다. 마지막으로 해석된 문자열은 원래 순서로 연결됩니다. 따라서 문자열 명령이 있는 경우 Goal Parser의 명령 해석을 찾아야 합니다. 따라서 입력이 command =G()()()(al)(al)과 같으면 출력은 Goooalal이 됩니다. 이
고유한 문자로 구성된 문자열과 단어라는 문자열 배열이 있다고 가정합니다. 문자열의 모든 문자가 문자열 s에 나타날 때 문자열은 일관성이 있습니다. 배열 단어에 있는 일관된 문자열의 수를 찾아야 합니다. 따라서 입력이 s=px, words =[ad,xp,pppx,xpp,apxpa]와 같으면 출력은 3개의 문자열만 있기 때문에 3이 됩니다. p 및 x, [xp,pppx,xpp]. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 개수 :=0 범위 0에서 단어 크기 - 1에 있는 i의 경우 수행 범위 0에서 단어 크
숫자 n이 있다고 가정합니다. 따라서 토너먼트에는 몇 가지 규칙이 있는 n개의 팀이 있습니다 - 현재 팀 수가 짝수이면 각 팀이 다른 팀과 병합됩니다. 그리고 총 (n/2) 경기가 진행되며, 그 중 (n/2) 승자가 다음 라운드로 진출합니다. 팀 수가 홀수인 경우 토너먼트에서 한 팀이 무작위로 이동하고 나머지 팀이 병합됩니다. 따라서 총 (n-1)/2 경기가 진행되고 (n-1)/2+1 팀이 승자로 다음 라운드로 이동합니다. 최종 승자를 얻으려면 총 경기 수를 찾아야 합니다. 따라서 입력이 n =10과 같으면 출력은
전화 번호가 문자열로 있다고 가정합니다. 전화번호는 숫자, 공백 및/또는 대시 -로 구성됩니다. 특정 방식으로 전화 번호를 다시 포맷하고 싶습니다. 몇 가지 규칙이 있습니다 - 시작 부분의 모든 공백과 대시 제거 4자리 이하가 남을 때까지 왼쪽에서 오른쪽으로 숫자를 길이가 3인 블록으로 그룹화합니다. 마지막 숫자는 다음과 같이 그룹화됩니다. - 2자리의 경우:길이가 2인 단일 블록. 3자리의 경우:길이가 3인 단일 블록. 4자리:길이가 각각 2인 블록 2개 추가 이 블록은 대시로 묶입니다.
길이가 짝수인 문자열 s가 있다고 가정합니다. 우리는 이 문자열을 같은 길이의 두 개의 다른 반으로 나누어야 합니다. 따라서 a는 전반부이고 b는 후반부입니다. 우리는 두 문자열이 같은 수의 모음(대문자 또는 소문자)을 가질 때 유사하다고 말합니다. b와 b가 같은지 아닌지 확인해야 합니다. 따라서 입력이 s =talent와 같으면 두 개의 반쪽이 tal과 ent이므로 출력은 True가 되고, 모음과 자음이 두 개뿐이므로 비슷합니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − a :=s의 왼쪽 절반 b :=s
boxTypes[i]에는 두 개의 요소[유형 i의 상자 수, 유형 i의 상자당 단위 수]가 포함된 boxTypes라는 2D 배열로 표시된 상자 세트가 있다고 가정합니다. 이제 우리는 또한 그 트럭에 실을 수 있는 최대 상자 수인 또 다른 값 k가 있습니다. 상자의 수가 k를 넘지 않는 한 트럭에 실을 상자를 선택할 수 있습니다. 트럭에 실을 수 있는 최대 총 유닛 수를 찾아야 합니다. 따라서 입력이 boxTypes =[[2,4],[3,3],[4,2]], k =6과 같으면 출력은 19가 됩니다. 유형 1의 상자 2개 및 각각
월요일에 은행에 1R을 입금했다고 가정해 봅시다. 그리고 다음 날 화요일부터 일요일까지 매일 전날보다 1Rs를 더 넣습니다. 그리고 다음 월요일마다 이전 월요일보다 1Rs를 더 넣습니다. 숫자 n이 있는 경우 n일이 끝날 때 은행에 남아 있는 총 금액을 찾아야 합니다. 따라서 입력이 n =17과 같으면 출력은 75가 됩니다. 왜냐하면 월요일에 1R을, 화요일에 2R을 입력하고, 일요일에 7R을 입력하고, 다음 월요일에 2R을 입력하고, 두 번째 화요일에 3R을 입력하기 때문입니다. 일요일에 8Rs를 넣습니다. 그런 다음 세 번째
음이 아닌 정수가 n개인 숨겨진 배열 arr이 있다고 가정합니다. 이제 이 배열은 길이가 n-1인 다른 배열 enc로 인코딩됩니다. 여기 enc[i] =arr[i] XOR arr[i+1]입니다. 인코딩된 enc 배열과 정수가 먼저 있으면 실제 배열의 첫 번째 요소인 원래 배열을 찾아야 합니다. 따라서 입력이 enc =[8,3,2,7], first =4와 같으면 출력은 [4, 12, 15, 13, 10]이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − arr :=첫 번째 요소가 하나만 있는 배열 범위 0에
rect[i]에 두 개의 요소[len_i, wid_i]가 있는 rect라는 배열이 있다고 가정합니다. 여기서 len_i와 wid_i는 각각 i번째 직사각형의 길이와 너비를 나타냅니다. 이제 k <=lenn_i 및 k <=wid_i인 경우 i번째 직사각형을 잘라 변 길이가 k인 정사각형을 형성할 수 있습니다. 예를 들어 직사각형 [4,6]이 있는 경우 한 변의 길이가 최대 4인 정사각형을 얻기 위해 잘라낼 수 있습니다. 이제 maxLen이라는 매개변수를 얻을 수 있는 가장 큰 정사각형의 변의 길이라고 생각합니다. 주어진 직사각형 중
도로 여행을 가려고 하는 자전거 타는 사람이 있다고 가정해 봅시다. 다른 고도에서의 로드 트립에는 n개의 다른 지점이 있습니다. 바이커는 고도가 0인 지점 0에서 여행을 시작합니다. n개의 요소가 있는 게인이라는 시퀀스가 있는 경우 Gain[i]는 지점 i와 i + 1 사이의 고도 순 이득입니다(0 <=i
hh:mm 형식의 시간을 나타내는 문자열 s가 있다고 가정합니다. s의 일부 숫자는 숨겨져 있습니다(?로 표시됨). 24시간제를 고려하면 유효한 시간은 00:00~23:59입니다. 숨겨진 숫자를 교체하여 시간에서 얻을 수 있는 최신 유효 시간을 찾아야 합니다. 따라서 입력이 s=1?:?5와 같으면 숫자 2로 시작하는 최신 시간이 23이고 숫자 0으로 끝나는 최신 분이 13:55가 됩니다. 50. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ans :=새 목록 max_time :=[2,3,:,5,9] max
l에서 r까지(둘 다 포함) 번호가 매겨진 n개의 공이 있고 1에서 무한대까지 번호가 매겨진 무한한 수의 상자가 있는 공 공장이 있다고 가정합니다. 따라서 각 공을 공 번호의 자릿수 합과 동일한 번호로 상자에 넣으면. (예를 들어, 공 번호 123은 상자 번호 1 + 2 + 3 =6에 넣을 것입니다). 따라서 두 개의 값 l과 r이 있는 경우 가장 많은 공이 있는 상자에서 공의 수를 찾아야 합니다. 따라서 입력이 l =15 r =25와 같으면 출력은 이기 때문에 2가 됩니다. 공 번호 15는 1+5 =6 안에 들어갈 것입니다
중복 요소가 거의 없고 고유한 요소가 있는 배열 num이 있다고 가정합니다. nums에 있는 모든 고유한 요소의 합을 찾아야 합니다. 따라서 입력이 nums =[5,2,1,5,3,1,3,8]과 같으면 고유한 요소만 8과 2이므로 합이 10이므로 출력은 10이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − count :=모든 고유한 요소와 빈도를 포함하는 사전 답변 :=0 숫자로 된 각 인덱스 i와 값 v에 대해 수행 count[v]가 1과 같으면 ans :=ans + v 반환
nums라는 배열이 있다고 가정하고 배열이 원래 내림차순으로 정렬되었는지 확인한 다음 몇 위치(0일 수도 있음)를 회전했는지 여부를 확인해야 합니다. 어레이에 중복이 있을 수도 있습니다. 따라서 입력이 nums =[12,15,2,5,6,9]와 같으면 두 위치만큼 오른쪽으로 회전하기 때문에 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − j :=0 동안 j
이진 문자열 s가 있다고 가정합니다. 1비트를 뒤집을 수 있는 연산을 고려해 보겠습니다. 두 개의 인접한 문자가 동일하지 않으면 문자열 s를 교대 문자열이라고 합니다. 우리는 s를 교대로 만드는 데 필요한 최소 작업 수를 찾아야 합니다. 따라서 입력이 s =11100011과 같으면 출력은 3이 됩니다. 왜냐하면 위치 1, 4, 7에서 비트를 뒤집으면 10101010이 되고 모두 교대로 되기 때문입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 변경 :=0 짝수_1 :=0, 짝수_0 :=0 홀수_1 :=
루트가 우리에게 루트로 주어진 n진 트리가 제공되었다고 가정합니다. 우리는 완전한 n-ary 이진 트리의 복사본을 만들고 두 트리의 사전 순서 순회를 수행해야 합니다. 복사된 트리는 다른 루트 노드를 사용하여 저장해야 합니다. 트리의 노드 구조는 다음과 같습니다. - Node: value : <integer> children : <array> 따라서 입력이 다음과 같으면 , 출력은 [14, 27, 32, 42, 56, 65] 입력 트리 및 출력 트리의 사전