문제 설명 문자열이 주어지면 문자열 회문을 만들기 위해 추가할 최소 문자를 찾습니다. 예 string이 abcac이면 2개의 강조표시된 문자, 즉 abcacba를 추가하여 문자열 회문을 만들 수 있습니다. 알고리즘 문자열이 이미 회문인지 확인하고, 그렇다면 문자를 추가할 필요가 없습니다. 문자열에서 문자를 하나씩 제거하고 나머지 문자열이 회문인지 확인 문자열이 회문석이 될 때까지 위의 과정을 반복합니다. 최종 답변으로 지금까지 제거된 문자 수를 반환합니다. 예 #include <iostream> #include &
문제 설명 물이 담긴 N 개의 잔과 각각의 용량 목록이 주어집니다. 작업은 정확히 K개의 잔을 채우는 데 필요한 최소 병 수를 찾는 것입니다. 각 병의 용량은 100개입니다. 예시 N =5, K =4인 경우 용량[] ={1, 2, 3, 2, 1}. 2, 3, 2 용량의 안경을 채우려면 8단위가 필요합니다. 이렇게 하면 1병만 열 수 있습니다. 알고리즘 K 안경을 정확히 작성하려면 최소 용량의 K 안경을 가져가세요. 총 필요한 병은 다음과 같이 계산할 수 있습니다. - (1st k 잔의 용량 합계) / (1병 용량)의
문제 설명 주어진 괄호 문자열. 여는 괄호 ( 또는 닫는 괄호 )를 컨테이너에 넣을 수 있습니다. 결과 괄호 문자열이 유효하도록 하려면 최소 괄호 수를 찾아야 합니다. 예시 str =((()이면 문자열 끝에 2개의 닫는 괄호, 즉 ))가 필요합니다. 알고리즘 여는 괄호 계산 닫는 괄호 계산 필수 괄호 =abs(여는 괄호 개수 – 닫는 괄호 개수) 예시 #include #include #include 네임스페이스 사용 std;int requiredParentheses(string str) { int OpeningParenthe
설명 처음 N 숫자의 순열을 갖는 N 숫자의 배열이 주어집니다. 단일 작업으로 모든 접두사를 반전할 수 있습니다. 작업은 배열의 숫자가 오름차순으로 정렬되도록 이러한 작업의 최소 수를 찾는 것입니다. 예시 배열이 {1, 2, 4, 3}인 경우 배열을 오름차순으로 정렬하려면 최소 3단계가 필요합니다. - 전체 배열 반전 {3, 4, 2, 1} 처음 두 요소 반전 {4, 3, 2, 1} 전체 배열 {1, 2, 3, 4} 반전 알고리즘 주어진 숫자를 문자열로 인코딩합니다. 배열을 정렬하고 문자열 대상으로 인코딩합니다. 그런 다음
문제 설명 연속된 숫자의 문자열과 숫자 Y가 주어지면 모든 집합이 아래 규칙을 따르도록 최소 집합의 수를 찾는 것입니다. - 세트에는 연속된 숫자가 포함되어야 합니다. 숫자는 두 번 이상 사용할 수 없습니다. 집합의 숫자는 Y보다 커서는 안 됩니다. 예 str =1234이고 Y =20이면 아래 집합이 생성되므로 답은 3입니다. - {12} {3} 및 {4} 알고리즘 문자열을 숫자로 변환 숫자가 Y보다 크지 않으면 f =1로 표시 숫자가 Y를 초과하면 f =1이면 count를 늘리고 f를 0으로 다시 초기화하고 num을 s
문제 설명 합이 N이 되는 필요한 한 자리 소수의 최소 수를 찾으십시오. 예시 N =9이면 합 9를 만들기 위해 2개의 소수, 즉 7과 2가 필요합니다. 예시 #include <iostream> using namespace std; bool isValidIndex(int i, int val) { return (i - val) < 0 ? false : true; } int getMinPrimes(int n) { int arr[n + 1]; for
문제 설명 주어진 정수 N. 제곱 자유 제수의 최소 수를 찾으십시오. N의 인수분해는 완전제곱수가 아닌 제수로만 구성되어야 합니다. 예 N =24이면 다음과 같이 3개의 제곱 자유 인수가 있습니다. - 요인 =2 * 6 * 2 알고리즘 N의 제곱근까지 모든 소인수 찾기 이제 N의 제곱근보다 작거나 같은 모든 소인수를 고려하고 각 소인수에 대해 N 수에서 최대 거듭제곱을 찾습니다(예:24에서 2의 최대 거듭제곱은 3임). 이제 우리는 소인수의 거듭제곱이 N에서 1보다 크면 그 자체로 그룹화할 수 없다는 것을 압니다(예:2는
문제 설명 N명의 몬스터가 주어지면 각 몬스터는 정수인 초기 체력 h[i]를 가집니다. 생명력이 0보다 크면 몬스터가 살아 있습니다. 매 턴마다 무작위 몬스터는 다른 무작위 몬스터를 죽입니다. 공격을 받은 몬스터의 생명력은 공격하는 몬스터의 생명력만큼 감소합니다. 이 과정은 하나의 몬스터가 남을 때까지 계속됩니다. 마지막 남은 몬스터의 가능한 최소 체력은 얼마입니까? 예시 입력 배열이 {2, 14, 28, 56}이면 첫 번째 몬스터만 나머지 3마리의 몬스터를 계속 공격할 때 마지막 몬스터의 최종 체력이 최소인 2가 되기 때문에
문제 설명 N개의 양의 정수 배열이 주어졌을 때, 그 작업은 배열의 임의의 두 요소 사이에 위치할 수 있는 가장 작은 양의 정수를 찾는 것입니다. 두 개의 하위 배열 중 하나에 새로 배치된 정수가 포함된 뒤의 하위 배열 예시 arr ={3, 2, 1, 5, 7, 10}이면 출력은 6입니다. 값 6을 5와 7 사이에 배치하면 왼쪽 및 오른쪽 하위 배열의 합은 다음과 같이 됩니다. - + 2 + 1 + 5 + 6 =17 7 + 10 =17 알고리즘 전체 배열의 합을 S로 둡니다. 아이디어는 인덱스 i(포함)까지 왼쪽 합계를 찾
문제 설명 n개의 정수와 정수 K의 배열이 주어졌습니다. |ai + aj – k| i !=j.에서 가능한 최소입니다. 예시 arr[ ] ={0, 4, 6, 2, 4}이고 k =7이면 최소값이 1인 다음 5개 쌍을 생성할 수 있습니다. {0, 6}, {4, 2}, {4, 4}, {6, 2}, {2, 4} 알고리즘 가능한 모든 쌍을 반복하고 각 쌍에 대해 (ai + aj – K) 값이 현재 가장 작은 not 값보다 작은지 여부를 확인합니다. 따라서 위 조건의 결과에 따라 총 3개의 경우가 있습니다 - 가장 작은 것 - 이 쌍
문제 설명 A와 B의 값이 주어지면 X =P*A + Q*B 방정식에서 얻을 수 있는 X의 최소 양의 정수 값을 찾으십시오. 여기서 P와 Q는 0 또는 양 또는 음의 정수일 수 있습니다. 예시 A =2, B =4이면 답은 2가 됩니다. 알고리즘 P*B 및 P*A – P*B가 최소 양의 정수가 되도록 P와 Q를 찾아야 합니다. 이 문제는 두 숫자의 GCD를 계산하여 쉽게 해결할 수 있습니다. 예시 #include <iostream> using namespace std; int getGcd(int a, int b) {
문제 설명 1 <=N <=1000000000 및 1 <=K <=1000000000인 각 질문에 대해 N개의 질문과 K개의 옵션이 주어집니다. 작업은 모든 1 <=i <에 대해 i번째 질문을 시도한 플레이어의 총 수의 합계를 결정하는 것입니다. =k 어쨌든 게임에서 승리합니다. 총 플레이어 수의 합을 최소화하고 109+7 모듈로 출력해야 합니다. 오답 시 플레이어가 제거된다는 점에 유의하세요. 예시 N =5이고 K =2이면 답은 62입니다. 알고리즘 N번째 풀기 질문 K 선수가 필요합니다. (N-1)번째 풀기 질문 K2 플레이
문제 설명 양수 배열 arr[]이 주어지면 배열에서 다음 속성을 만족하는 최소 집합 수를 찾습니다. 집합에는 최대 2개의 요소가 포함될 수 있습니다. 두 요소가 연속적일 필요는 없습니다. 집합 요소의 합은 주어진 키보다 작거나 같아야 합니다. 주어진 키가 가장 큰 배열 요소보다 크거나 같다고 가정할 수 있습니다. 예시 arr[] ={1, 2, 3, 4}이고 k =5이면 다음 2쌍이 생성될 수 있습니다. − {1, 4} 및 {2, 3} 알고리즘 배열 정렬 정렬된 배열의 두 모서리에서 두 포인터를 시작합니다. 합이 주어진 키
문제 설명 n개의 요소로 구성된 배열이 제공됩니다. 작업은 전체 배열의 XOR을 0으로 만드는 것입니다. 이를 달성하기 위해 다음을 수행할 수 있습니다. 요소 중 하나를 선택할 수 있습니다 - 요소를 선택한 후 1씩 증가 또는 감소할 수 있습니다. 전체 배열의 XOR 합을 0으로 만들기 위해 선택한 요소에 필요한 최소 증가/감소 연산 수를 찾아야 합니다. 예시 arr[] ={2, 4, 7}이면 1개의 연산이 필요합니다 - 요소 2 선택 1씩 감소 이제 배열은 {3, 4, 7}이 되고 XOR은 0입니다. 알고리즘 전체
문제 설명 n개의 정수 집합이 주어지면 집합의 MEX를 x(주어진 값)와 같게 만들기 위해 최소 작업 수(집합에 요소를 삽입/삭제할 수 있음)를 수행합니다. 참고 − 정수 집합의 MEX는 그 안에 존재하지 않는 최소 음이 아닌 정수입니다. 예를 들어, 집합 {0, 2, 4}의 MEX는 1이고 집합 {1, 2, 3}의 MEX는 0입니다. 예시 n =5이고 x =3이고 배열이 {0, 4, 5, 6, 7}이면 최소 2개의 작업이 필요합니다. 알고리즘 접근법은 최종 세트에서 x보다 작은 모든 요소가 존재해야 하고 x가 존재하지 않아
문제 설명 N개의 행과 M개의 열로 구성된 이진 행렬이 주어집니다. 행렬에서 허용되는 작업은 인덱스(x, y)를 선택하고 왼쪽 위가 (0, 0)이고 오른쪽 아래가 (x-1, y-1)인 직사각형 사이의 모든 요소를 토글하는 것입니다. 요소를 토글한다는 것은 1을 0으로, 0을 1로 변경하는 것을 의미합니다. 작업은 행렬의 모든 요소를 설정하는 데 필요한 최소 작업을 찾는 것입니다. 즉, 모든 요소를 1로 만드는 것입니다. 예시 If input matrix is {0, 0, 0, 1, 1} {0, 0
이동 Go는 절차적 프로그래밍 언어입니다. 프로그램은 패키지를 사용하여 어셈블됩니다. 동적 언어와 유사한 패턴을 채택한 환경을 지원합니다. C++ C++는 객체 지향 프로그래밍 언어입니다. C++는 조용하고 빠르고 안정적이며 안전합니다. 가장 널리 사용되는 언어이기도 합니다. 다음은 Go와 C++의 중요한 차이점입니다. Sr. 아니요. 키 이동 C++ 1 유형 Go는 절차적 프로그래밍 언어이며 동적 언어와 유사한 패턴을 지원합니다. C++는 객체 지향 프로그래밍 언어입니다. 2 수업 지원 Go는 생성자가 있는 클래스를 지
전 세계적으로 10월 7일을 기념하는 여성의 날은 다음과 같이 C++ 프로그래밍 코드에 새겨져 있습니다. 예시 #include <iostream> using namespace std; int main(){ // Initializing size of // design int n = 5; // Loop to print Circle // (Upper part of design) // Out
이 프로그램은 문자열의 문자를 대문자로 변환합니다. 그러나 이 작업은 C++ 클래스 라이브러리의 toUpper() 메서드를 사용하여 쉽게 수행할 수 있습니다. 그러나 이 프로그램에서는 대문자의 ASCII 값을 계산하여 이를 수행합니다. 알고리즘은 다음과 같습니다. 알고리즘 START Step-1: Declare the array of char Step-2: Check ASCII value of uppercase characters which must grater than A and le
이 자습서는 C++ 코드를 사용하여 3-대각선 배열의 위쪽 행을 아래쪽 행으로 바꾸도록 설계되었습니다. 게다가 3대각 배열이 입력이라면 원하는 결과는 다음과 같아야 합니다. 이를 위해 작업 과정은 다음과 같이 알고리즘에 요약되어 있습니다. 알고리즘 Step-1: Input a diagonal array Step-2: Pass it to Swap() method Step-3: Traverse the outer loop till 3 Step-4: increment j= i+ 1 in the inner loop till 3 Step