정수 N이 있다고 가정합니다. 작업은 N의 모든 인수를 찾고 N의 네 가지 인수의 곱을 표시하는 것입니다. 다음과 같이 - 네 가지 요소의 합은 N 4가지 요소의 곱이 최대입니다. 숫자가 24라고 가정하면 결과는 1296입니다. 우리가 알다시피 모든 요인은 1, 2, 3, 4, 6, 8, 12, 24입니다. 우리는 요인 6을 네 번 선택해야 합니다. 따라서 6 + 6 + 6 + 6 =24입니다. 여기서 곱은 최대값입니다. 이를 해결하기 위해서는 1부터 N까지 모든 요인을 찾은 다음 이러한 조건을 확인해야 합니다.
연결 목록은 요소를 인접하지 않은 메모리 위치에 저장하는 선형 데이터 구조입니다. 모든 요소는 연결 목록의 다음 요소에 대한 포인터를 포함합니다. 예 - 이 문제에서는 연결 목록이 주어지고 이 연결 목록의 요소를 인쇄해야 하지만 대체 요소만 인쇄해야 합니다. 문제를 더 잘 이해하기 위해 예를 들어보겠습니다. Input : 2 -> 4 -> 1 -> 67 -> 48 -> 90 Output : 2 -> 1 -> 48 설명 − 연결 목록에 대체 요소를 인쇄합니다. 따라서 첫 번째, 세 번째
이 문제에서는 낙타 케이스로 된 문자열 배열과 패턴이 제공됩니다. 주어진 패턴과 일치하는 배열의 모든 문자열을 인쇄해야 합니다. 문자열 배열 요소가 문자열 데이터 유형인 배열입니다. 낙타 케이스 프로그래밍에서 이름을 지정하는 일반적인 방법입니다. 이런 식으로 새 단어의 첫 글자는 대문자로 시작하고 나머지는 모두 소문자입니다. 예 − iLove프로그래밍 문제 - 주어진 패턴과 일치하는 모든 문자열을 찾습니다. 예 - Input : “TutorialsPoint” , “ProgrammersPoin
이 문제에서는 문자열이 주어지며 이를 부분 문자열로 나누고 괄호를 묶어 출력해야 합니다. 문제를 더 잘 이해하기 위해 몇 가지 예를 들어보겠습니다. Input : wxyz Output : (w) (x) (y) (z) (w) (x) (yz) (w) (xy) (z) (w) (xyz) (wx) (y) (z) (wx) (yz) (wxy) (z) (wxyz
이진 행렬이 있다고 가정합니다. 주어진 행렬에 네 모서리가 모두 1인 직사각형이나 시퀀스가 있는지 찾아야 합니다. 행렬은 다음과 같습니다. 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 결과는 예일 것입니다. 여기에 모서리가 1인 직사각형이 하나 있습니다. 1 0 1 0 1 0 1 0 1 이 문제를 해결하기 위해 하나의 효율적인 접근 방식을 사용합니다. 우리는 다음 단계를 따를 것입니다 - 행렬을 위에서 아래로 한 줄씩 스캔합니다. 각 행에 대해 2개의 1의 각 조합을
이 문제의 경우 단어 집합과 문자 배열이 주어지고 해당 단어가 가능한지 여부를 해당 배열의 문자를 사용하여 확인해야 합니다. 문제를 더 잘 이해하기 위해 예를 들어 보겠습니다 - Input : words[] : {‘go’ , ‘hi’ , ‘run’ , ‘on’ , ‘hog’ , ‘gone’} Char[] : {‘a’ , ‘o’ , &lsq
y =mx + c 형식의 선 집합이 있다고 가정합니다. 이 선과 수직 단면에 의해 만들어진 섹션이 있습니다. 우리는 주어진 섹션에 존재하는 교차점을 찾아야 합니다. 라인이 다음과 같다고 가정합니다 - L1 =y =x + 2 L2 =y =-x + 7 L3 =y =-3 L4 =y =2x - 7 그리고 수직 단면은 x =2에서 x =4까지 주어집니다. 여기 L1과 L2의 교차점이 이 섹션 안에 있으므로 답은 참입니다. 이 문제를 해결하기 위해 정렬 기술을 고소합니다. 먼저 수직 단면의 두 경계를 사용하여 각 선의 교차점을 계
n. 두 번째 배열에 0을 삽입하여 내적을 최대화해야 합니다. 한 가지 명심해야 할 것은 주어진 배열에서 요소의 순서를 변경하지 않는다는 것입니다. 배열이 A =[2, 3, 1, 7, 8]이고 다른 배열 B =[3, 6, 7]이라고 가정합니다. 출력은 107이 됩니다. 두 번째 배열의 첫 번째와 세 번째 위치에 0을 삽입한 후 내적을 최대화할 수 있습니다. 따라서 제품은 2 * 0 + 3 * 3 + 1 * 0 + 7 * 6 + 8 * 7 =107이 됩니다. 이를 해결하기 위해 동적 프로그래밍 접근 방식을 사용합니다. 따라서 A의
n개의 객체로 구성된 배열이 있다고 가정합니다. 각 객체의 너비는 W[i]입니다. 다음과 같이 피라미드 방식으로 정렬해야 합니다. i번째 너비가 (i + 1)번째보다 작습니다. i번째 객체의 총 개수가 (i + 1)번째보다 작습니다. 예를 들어 가중치가 [40, 100, 20, 30]과 같으면 출력은 2가 됩니다. 따라서 최상위 수준은 30이고 하위 수준은 20, 40 및 100입니다. 이를 해결하기 위해 greedy 접근 방식을 사용합니다. 아이디어는 너비가 낮은 개체를 맨 위에 놓고 다음 개체를 바로 아래 수
세 개의 양수 스택이 있다고 가정합니다. 우리는 허용되는 최상위 요소 제거와 함께 가능한 동일한 최대 스택 합계를 찾아야 합니다. 스택은 배열로 표시됩니다. 배열의 첫 번째 인덱스는 스택의 최상위 요소를 나타냅니다. 스택 요소가 [3, 10], [4, 5] 및 [2, 1]과 같다고 가정합니다. 출력은 0이 됩니다. 합계는 모든 스택에서 모든 요소를 제거한 후에만 동일할 수 있습니다. 이를 해결하기 위해 우리는 이 아이디어를 따를 것입니다. 아이디어는 각 스택의 합을 비교하는 것입니다. 동일하지 않은 경우 합이 최대인 스택의 맨
y^x와 같은 쌍의 수를 찾으십시오. 여기서 x는 X의 요소이고 y는 Y의 요소입니다. X =[2, 1, 6] 및 Y =[1, 5]라고 가정합니다. , 출력은 3이 됩니다. 세 쌍이 있으므로 (2, 1), (2, 5) 및 (6, 1) y^x일 것입니다. 이것이 트릭입니다. 배열 Y 정렬 X의 각 요소 x에 대해 Y의 x보다 큰 가장 작은 숫자의 인덱스를 찾아야 합니다. 이를 위해 이진 검색을 사용합니다. 그렇지 않으면 upper_bound() 함수도 사용할 수 있습니다. 찾은 인덱스 이후의 모든 숫자는 관계를 만족
문자열이 있다고 가정합니다. 문자열의 왼쪽과 오른쪽 부분에 같은 문자가 포함된 문자열에서 균형 위치 수를 찾아야 합니다. 문자의 빈도는 중요하지 않습니다. 따라서 문자열이 ABAABA이면 균형 위치의 수는 3입니다. 이러한 위치는 AB|AABA, ABA|ABA, ABAA|BA입니다. 이를 해결하기 위해 우리는 몇 가지 효율적인 접근 방식을 따를 것입니다. 문자열을 순회한 후 우리는 먼저 모든 문자의 수로 옳다고 느낀다[]. 그런 다음 문자열을 왼쪽에서 오른쪽으로 이동합니다. 모든 문자에 대해 왼쪽[]에서 카운트를 증가시키고 오른쪽
여기서 우리는 사용자로부터 정수를 읽고 C++로 표시하는 방법을 볼 것입니다. 입력을 받기 위해 cin 연산자를 사용하고 표시하기 위해 cout 연산자를 사용합니다. 구문은 다음과 같습니다 - 입력 - int x; cin >> x; 출력 - int x = 110; cout << x; 예시 #include<iostream> using namespace std; int main(int argc, char const *argv[]) { int x; int
여기에서 몇 가지 중요한 C++ 인터뷰 질문을 볼 수 있습니다. C와 C++의 차이점은 무엇입니까? 키 C C++ 소개 C는 1969년경 AT&T Bell Labs에서 Dennis Ritchie에 의해 개발되었습니다. C++는 1979년 Bjarne Stroustrup에 의해 개발되었습니다. 언어 유형 앞서 언급했듯이 C는 절차적 프로그래밍입니다. 반면에 C++는 절차적 프로그래밍 패러다임과 객체 지향 프로그래밍 패러다임을 모두 지원합니다. OOP 기능 지원 C는 OOP 개념을 지원하지 않으므로 다형성, 캡슐화 및
여기서 시스템 호출을 사용하여 C++에서 타이머를 디자인하는 방법을 볼 것입니다. 그래픽이나 애니메이션은 사용하지 않습니다. 여기서 타이머는 스톱워치, 즉 시간을 세는 것을 의미합니다. 사용된 시스템 호출은 - 수면(n) − 이것은 프로그램이 n초 동안 절전 모드로 전환하는 데 도움이 됩니다. 시스템() − 이 함수에 명령을 인수로 전달하여 시스템 명령을 실행할 때 사용합니다. 예시 #include <iomanip> #include <iostream> #include <stdlib.h> #inclu
여기서 우리는 C++ 언어를 우리가 가장 좋아하는 프로그래밍 언어로 선택한 몇 가지 좋은 이유를 볼 것입니다. 우리는 C++가 가장 인기 있는 객체 지향 프로그래밍 언어 중 하나라는 것을 알고 있습니다. 이것이 C++를 고려하는 이유입니다. C++의 인기와 높은 급여 - C++는 세계에서 가장 인기 있는 언어 중 하나입니다. 전 세계적으로 거의 440만 개발자가 사용하고 있습니다. C++ 개발자는 연간 평균 $100000의 기본급으로 업계에서 가장 높은 급여를 받는 직업을 보유하고 있습니다. C++에는 풍부한 라이브러
여기서 우리는 C++에 존재하는 유형 변환 기술이 무엇인지 볼 것입니다. 유형 변환에는 크게 두 가지 유형이 있습니다. 암시적 및 명시적. 암시적 유형 변환 이를 자동 유형 변환이라고도 합니다. 이것은 사용자의 외부 트리거 없이 컴파일러에 의해 수행됩니다. 하나의 표현식에 둘 이상의 데이터 유형이 있는 경우 수행됩니다. 모든 데이터 유형은 큰 변수의 데이터 유형으로 업그레이드됩니다. bool -> char -> short int -> int -> unsigned int -> long ->
두 개의 정수 x와 n이 있다고 가정합니다. (x^1, x^2,… x^(n – 1), x^n)에서 발생하는 인덱스 번호의 빈도를 포함하는 배열을 찾아야 합니다. 따라서 x =15이고 n =3이면 출력은 [0, 1, 2, 2, 0, 3, 0, 1, 0, 0]이 됩니다. x^1에서 x^n까지의 값은 15, 225 및 3375입니다. 따라서 주파수 배열은 0, 1, 2, 2, 0, 3, 0, 1, 0, 0입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 0에서 9까지의 숫자를 저장하기 위해 빈도 카운트 배열을 유지합니다
정점 목록이 있고 그 차수가 주어진다고 가정합니다. 해당 차수 시퀀스에서 하나의 무방향 그래프를 생성해야 합니다. 루프 또는 다중 모서리는 포함되지 않습니다. 따라서 차수 시퀀스가 [2, 2, 1, 1]과 같으면 그래프는 다음과 같을 수 있습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 그래프를 저장할 인접 행렬 adj 정의 각 정점 i에 대해 수행 유효한 각 정점 j에 대해, 그리고 i 옆에 꼭짓점 i와 j의 차수가 0보다 크면 연결하십시오. 매트릭스를 표시합니다. 예시
여기에서 언어 L ={AiBjCk | 나는 * j =k; i, j, k ≥ 1}. 따라서 이것은 A, B, C 세 개의 문자만 사용하는 일종의 언어를 나타냅니다. w는 문자열입니다. 따라서 w =AABBBBCCCCCCCC이면 튜링 기계가 이를 받아들입니다. 이를 해결하기 위해 이 접근 방식을 사용할 것입니다. 먼저 A를 x로 바꾸고 오른쪽으로 이동합니다. 그런 다음 모든 A를 건너뛰고 오른쪽으로 이동하세요. 머리가 첫 번째 B에 도달하면 하나의 B를 y로 교체한 다음 모든 중간 B를 건너뛰고 교체된 B에 해당하는 오른쪽