처음에 꺼진 n개의 전구가 있다고 가정합니다. 먼저 모든 전구를 켭니다. 그런 다음 매 초마다 전구를 끕니다. 세 번째 라운드에서는 세 번째 전구마다 토글합니다(꺼진 경우 켜고 켜져 있는 경우 꺼짐). 유사하게, i번째 라운드의 경우, 우리는 모든 i 전구를 토글합니다. n번째 라운드에서는 마지막 전구만 토글합니다. 그래서 우리는 n 라운드 후에 몇 개의 전구가 켜져 있는지 찾아야 합니다. 따라서 입력이 3이면 결과는 1이 됩니다. 이는 - 처음에는 전구 3개가 [꺼짐, 꺼짐, 꺼짐]입니다. 첫 라운드가 끝나면 전구 3개가 [켜짐
1에서 7 사이의 균일한 임의의 정수를 생성하는 함수 rand7이 있다고 가정하고 1에서 10까지의 범위에서 균일한 임의의 정수를 생성하는 또 다른 함수 rand10을 작성해야 합니다. 임의의 숫자를 생성하기 위해 일부 라이브러리 함수를 사용할 수 없습니다. 두 개의 난수를 원하므로 [8,10]이 될 수 있습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − rand40 :=40 =40 rand40 :=(rand7() - 1) * 7 + (rand7() – 1) rand40 모드 10 + 1을 반환 이해를 돕기
작은 성냥개비 소녀가 있다고 가정해 봅시다. 그리고 우리는 성냥개비 소녀가 가지고 있는 성냥개비를 정확히 알고 있습니다. 우리는 성냥개비를 모두 사용하여 정사각형 하나를 만들 수 있는 방법을 찾아야 합니다. 막대기를 부러뜨리면 안되지만 연결할 수 있으며 각 성냥개비는 정확히 한 번만 사용해야 합니다. 우리의 입력은 소녀가 가지고 있는 여러 성냥개비로, 막대기 길이로 표시됩니다. 우리의 출력은 성냥개비 소녀가 가지고 있는 모든 성냥개비를 사용하여 하나의 정사각형을 만들 수 있는지 여부를 나타내기 위해 true 또는 false가 될 것
각각 m 0s와 n 1s의 도미네이터가 있다고 가정합니다. 반면에 이진 문자열이 있는 배열이 있습니다. 이제 우리의 임무는 주어진 m 0과 n 1에서 생성할 수 있는 최대 문자열 수를 찾는 것입니다. 0과 1은 각각 최대 한 번만 사용할 수 있습니다. 따라서 입력이 Array =[10, 0001, 111001, 1, 0,] 및 m =5 및 n =3과 같으면 출력은 4가 됩니다. 5개의 0과 3개의 1을 사용하여 10,0001,1,0인 총 4개의 문자열을 만들 수 있습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − (m
원의 중심에 대한 반지름과 x-y 위치가 있다고 가정하고 원에 균일한 임의의 점을 생성하는 randPoint()라는 함수를 작성해야 합니다. 따라서 명심해야 할 몇 가지 중요한 사항이 있습니다. 입력 및 출력 값은 부동 소수점입니다. 원 중심의 반지름 및 x-y 위치가 클래스 생성자에 전달됩니다. 원의 둘레에 있는 점은 원 안에 있는 것으로 간주됩니다. randPoint()는 임의의 점의 x 위치와 y 위치를 순서대로 반환합니다. 따라서 입력이 [10, 5,-7.5]와 같으면 [11.15792,-8.54781],[2.4985
문자열이 있다고 가정합니다. 그 문자열을 마법의 문자열 S라고 하며 1과 2로만 구성되며 다음 규칙을 따릅니다. - 문자 1과 2의 연속 발생 횟수를 연결하면 문자열 S 자체가 생성되기 때문에 문자열 S는 마법과 같습니다. 문자열 S의 처음 몇 가지 구성 요소는 다음과 같습니다. - S =1221121221221121122… S에서 연속적인 1과 2를 그룹화하면 − 1 22 11 2 1 22 1 22 11 2 11 22 ...... 및 각 그룹에서 1 또는 2가 발생합니다. 는 − 1 2 2 1 1 2 1 2 2 1 2 2 ...
정수 배열이 있다고 가정하고 우리의 임무는 주어진 배열의 가능한 모든 증가하는 부분 시퀀스를 찾는 것이며 증가하는 부분 시퀀스의 길이는 적어도 2이어야 합니다. 따라서 배열이 [4,6,7,7 ] 그러면 출력은 다음과 같습니다. - [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7 , 7], [7,7], [4,7,7]]. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 모든 결과를 저장하기 위해 res라는 배열을 정의합니다. solve라는 메서드를 만듭니다. 이것은 nums 배
LOL 세계에 Teemo라는 영웅이 있고 그의 공격으로 인해 적 Ashe가 중독 상태가 될 수 있다고 가정합니다. 이제 Ashe를 향한 Teemo의 공격 오름차순 시계열과 Teemo의 공격당 중독 시간을 주었다고 가정하면 Ashe가 중독 상태에 있는 총 시간을 찾아야 합니다. Teemo가 특정 시점의 맨 처음에 공격하여 Ashe를 즉시 중독 상태로 만들 수 있다고 가정할 수 있습니다. 입력은 [1,4] 및 2와 같으며 출력은 4가 됩니다. 이는 시점 1에서 Teemo가 Ashe를 공격하기 시작하여 Ashe를 즉시 중독시키기 때문입
겹치지 않는 축으로 정렬된 직사각형의 목록이 있다고 가정하고 직사각형으로 덮인 공간의 점인 정수를 무작위로 균일하게 선택하는 함수 선택을 작성해야 합니다. 따라서 몇 가지 사항을 염두에 두어야 합니다 - 정수 점은 정수 좌표를 갖는 점입니다. 사각형 둘레의 점은 직사각형으로 덮인 공간에 포함됩니다. i번째 직사각형 =rects[i]는 [x1,y1,x2,y2]를 나타내며, 여기서 [x1, y1]은 왼쪽 하단 모서리의 정수 좌표이고 [x2, y2]는 다음의 정수 좌표입니다. 오른쪽 상단 모서리. 각 직사각형의 길이와 너비는 2000을
M x N 요소의 행렬이 있다고 가정하면 행렬의 모든 요소를 대각선 순서로 찾아야 합니다. 따라서 행렬이 다음과 같은 경우 - 1 2 3 4 5 6 7 8 9 출력은 [1,2,4,7,5,3,6,8,9]가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 배열을 ret로 만들고 row :=0 및 col :=0, n :=row count, m :=col count, down :=false로 설정 0 ~ n – 1 범위의 i에 대해 x :=i, y :=0 배열 임시 생성 =0이고 y
문자열 s가 있다고 가정하고 s에서 가장 긴 회문 부분 시퀀스의 길이를 찾아야 합니다. s의 최대 길이가 1000이라고 가정할 수 있습니다. 따라서 입력이 bbbab과 같으면 출력은 4가 됩니다. 가능한 회문 부분 시퀀스 중 하나는 bbbb입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − x :=s, x 반전, n :=s 크기 n이 0이면 0을 반환 s 앞에 공백 하나를 추가하여 s를 업데이트하고 x 앞에 공백 하나를 추가하여 x를 업데이트합니다. ret :=0 (n + 1) x (n + 1) 크기의 행렬 dp 하나
행 수가 n_rows이고 열이 n_cols인 이진 행렬이 있다고 가정합니다. 여기서 모든 값은 처음에는 0입니다. 무작위로 균일하게 0 값을 선택하고 1로 변경한 다음 해당 값의 위치 [row.id, col.id]를 반환하는 함수 flip()을 정의해야 합니다. 또한 모든 값을 다시 0으로 설정하는 또 다른 함수 reset()을 작성해야 합니다. 시스템의 Math.random() 호출 횟수를 최소화하고 시간 및 공간 복잡성을 최적화해야 합니다. 2x3 차수의 행렬이 있고 flip을 네 번 호출하면 결과는 [0,1], [1,2],
음수가 아닌 숫자 목록과 대상 정수 k가 있다고 가정하고 배열에 k의 배수, 합계가 n*인 크기가 최소 2인 연속 하위 배열이 있는지 확인하는 함수를 작성해야 합니다. k 여기서 n은 정수이기도 합니다. 따라서 입력이 [23,2,4,6,7]이고 k =6인 경우 결과는 True가 됩니다. [2,4]는 크기가 2이고 합계가 6이 되기 때문입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − m 맵을 만들고 m[0] :=-1 및 sum :=0, n :=nums 배열의 크기로 설정 0 ~ n – 1 범위의 i에 대해 합계 :=합
문자열과 문자열 사전이 있다고 가정하고 사전에서 주어진 문자열의 일부 문자를 삭제하여 구성할 수 있는 가장 긴 문자열을 찾아야 합니다. 가능한 결과가 둘 이상인 경우 사전순이 가장 작은 가장 긴 단어만 반환합니다. 결과가 없으면 빈 문자열을 반환합니다. 따라서 입력이 abpcplea이고 d =[ale, apple, monkey, plea]와 같으면 결과는 apple이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − isSubsequence()라는 메서드를 정의합니다. s1과 s2가 필요합니다. j :=0 0부터 s1
이진 배열이 있다고 가정하고 동일한 수의 0과 1을 가진 연속 하위 배열의 최대 길이를 찾아야 합니다. 따라서 입력이 [0,1,0]과 같으면 출력은 [0, 1] 또는 [1,0]은 0과 1의 개수가 동일한 가장 큰 연속 배열입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ret :=0, n :=숫자의 크기, 합계 :=0 지도 m 만들기, m[0] :=- 1로 설정 0에서 숫자 크기 – 1까지 범위에 있는 i의 경우 sum :=sum + 1이면 nums[i]가 1이고 그렇지 않으면 sum :=sum – 1 합계가 m이면
1에서 N까지의 N개의 정수가 있다고 가정합니다. 다음 중 하나가 이 배열의 i번째 위치(1 <=i <=N)에 대해 참인 경우 이 N개의 숫자로 완전히 구성된 배열로 아름다운 배열을 정의합니다. - i번째 위치의 숫자는 i로 나눌 수 있습니다. i는 i번째 위치의 숫자로 나눌 수 있습니다. 따라서 입력이 2이면 결과도 2가 됩니다. 첫 번째 아름다운 배열은 [1,2]이기 때문입니다. 여기서 첫 번째 위치(i=1)의 숫자는 1이고 1은 i(i=1)로 나눌 수 있습니다. 그런 다음 두 번째 위치(i=2)의 숫자는 2이고 2는 i(
양의 정수 배열 w가 있다고 가정하고 w[i]가 인덱스 i의 가중치를 설명한다면 가중치에 비례하여 인덱스를 무작위로 선택하는 함수 pickIndex()를 정의해야 합니다. 따라서 입력이 [1,3]과 같으면 pickIndex()를 5번 호출하면 응답이 -0, 1, 1, 1, 0이 될 수 있습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 배열 v 정의, 이니셜라이저를 통해 다음과 같이 초기화합니다. n :=w[0] 범위 1에서 w까지의 i에 대해 w[i] :=w[i] + w[i – 1] n :=w[i] v =w p
이 튜토리얼에서는 시리즈 3, 5, 33, 35, 53…의 N번째 항을 찾는 프로그램에 대해 논의할 것입니다. 이를 위해 번호가 제공됩니다. 우리의 임무는 특정 위치에서 주어진 시리즈에 대한 용어를 찾는 것입니다. 예시 #include <bits/stdc++.h> using namespace std; //finding the nth term in the series int printNthElement(int n){ int arr[n + 1]; arr[1] = 3;  
이 튜토리얼에서는 HCF를 반복적으로 찾는 프로그램에 대해 논의할 것입니다. 이를 위해 두 개의 숫자가 제공됩니다. 우리의 임무는 반복 함수를 사용하여 주어진 숫자의 HCF를 계산하는 것입니다. 예 #include <bits/stdc++.h> using namespace std; int get_HCF(int a, int b){ while (a != b){ if (a > b) a = a - b;
이 튜토리얼에서는 문자가 모음인지 자음인지 알아보는 프로그램에 대해 설명합니다. 이를 위해 캐릭터가 제공됩니다. 우리의 임무는 제공된 문자가 모음인지 자음인지를 사용자에게 출력하는 것입니다. 예시 #include <iostream> using namespace std; //checking if the character is a vowel or consonant void is_vowel(char x){ if (x == 'a' || x == 'e' || x == '