이 문제에서는 0 또는 1인 n개의 요소로 구성된 배열 arr이 제공됩니다. 우리의 임무는 이웃 채우기의 최소 반복을 사용하여 배열을 1로 채우는 것입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: arr[] ={0, 1, 1, 0, 0, 1} 출력: 1 해결 방법 - 문제를 해결하려면 위치에 1이 있으면 인접한 두 개의 0을 1로 변환할 수 있다는 사실을 알아야 합니다. 만약, arr[i]는 1이다. 그러면 arr[i-1]과 arr[i+1]이 1로 변환됩니다. 이를 사용하여 다음 경우 중 하나를 사용하여
이 문제에서는 트리를 나타내는 n 크기의 배열 arr[]이 제공됩니다. 우리의 임무는 Parent 배열이 나타내는 Binary Tree의 높이를 찾는 것입니다. 이진 검색 트리(BST) 모든 노드가 아래에 언급된 속성을 따르는 트리입니다 - 왼쪽 하위 트리의 키 값이 상위(루트) 노드의 키 값보다 작습니다. 오른쪽 하위 트리의 키 값이 상위(루트) 노드의 키 값보다 크거나 같습니다. 나무 높이 루트 노드에서 가장 먼 잎 노드로 이동할 때 통과하는 노드의 수입니다. 해결 방법: 문제에 대한 간단한 해결책은 부모 배열
이 문제에서는 n개의 숫자와 숫자의 목록이 제공됩니다. 우리의 임무는 숫자가 목록의 모든 숫자로 나누어 떨어지는지 찾는 것입니다. 주어진 숫자가 목록의 모든 요소를 나누는지 여부를 확인해야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: 목록[] =[4, 10,6, 5, 9] 숫자 =5 출력: 아니요 설명: 요소 4, 6, 9는 5로 나눌 수 없습니다. 해결 방법: 문제를 해결하려면 목록의 요소가 num으로 나눌 수 있는지 확인해야 합니다. 목록의 모든 수를 num으로 나눌 수 있으면 true를
이 문제에서는 두 개의 문자열 str과 corStr이 제공됩니다. 우리의 임무는 문자열이 주어진 다른 문자열로 시작하고 끝나는지 찾는 것입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: str =abcprogrammingabc conStr =abc 출력: 참 해결 방법: len(conStr)인지 확인하고 그렇지 않은 경우 false를 반환합니다. corStr 크기의 접두사와 접미사가 동일한지 확인하고 corStr이 포함되어 있는지 확인합니다. 우리 솔루션의 작동을 설명하는 프로그램, 예시 #include &
이 문제에서는 정렬된 고유 값의 배열 arr가 제공됩니다. 우리의 임무는 배열에 값이 배열 합계의 절반인 요소가 있는지 찾는 것입니다. . 문제 설명: 배열 arr[]의 경우 배열의 모든 요소의 합이 2*X와 같도록 배열에서 요소 x를 찾아야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: arr[] ={2, 4, 5, 6, 7} 출력: 아니요 설명: 합계 =2 + 4 + 5 + 6 + 7 =24 요소를 찾을 수 없습니다. 해결 방법: 문제를 해결하려면 배열의 모든 요소 합계의 절반인 요소를 찾기만
이 문제에서는 크기가 n*n인 2D 정방 행렬 mat[][]이 제공됩니다. 우리의 임무는 주어진 행렬이 Toeplitz인지 아닌지를 찾는 것입니다. 토플리츠 행렬 대각 행렬이라고도 하는 대각 행렬은 대각선의 요소가 왼쪽 위 모서리에서 오른쪽 아래 모서리로 시작하는 행렬입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: 매트[][] ={{3, 5, 1}, {4, 3, 2}, {1, 2, 3}} 출력: 예 설명: 대각선 :(0, 0), (1, 1) , (2, 2) 값은 3과 같습니다. 해결 방법: 문제
이 문제에서는 숫자가 주어집니다. 우리의 임무는 주어진 숫자가 처음 n개의 자연수의 합인지 찾는 것입니다. 문제 설명: 여기서 주어진 숫자가 처음 n개의 자연수의 합인지 확인해야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: 숫자 =55 출력: 예, 10 설명: 55는 처음 10개의 자연수 1+2+3+4+5+6+7+8+9+10의 합입니다. 해결 방법: 문제를 푸는 간단한 방법은 n개의 자연수의 합이 num보다 크거나 같을 때까지 찾는 것입니다. 합계가 num과 같으면 n을 반환합니다. n
이 문제에서는 페이지에 있는 세 점의 좌표가 제공됩니다. 우리의 임무는 페이지를 비스듬히 회전할 수 있는지 여부를 찾는 것입니다. 페이지의 회전은 x의 새 위치가 y의 이전 위치이고 y의 새 위치가 z의 이전 위치가 되는 방식으로 이루어집니다. 그리고 회전에 따라 예 또는 아니오를 인쇄합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: x =(0, 1), y =(1, 0), z =(0, -1) 출력: 예 설명: 페이지를 90o 회전할 수 있습니다. . 해결 방법: 조건이 있으면 페이지를
이 문제에서는 호텔의 도착과 출발을 나타내는 N개의 값과 정수 k로 구성된 두 개의 배열이 제공됩니다. 우리의 임무는 주어진 도착 및 출발 시간에 k개의 예약이 가능한지 찾는 것입니다. 문제 설명: 여기에서 k 개의 객실이 있는 호텔이 모든 도착 및 출발을 수용할 수 있는지 확인해야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: 도착:{1 4 5 7} 출발 :{3 5 6 9} K =1 출력: 예 해결 방법: 이 문제를 해결하기 위해 호텔의 도착 및 출발을 도착 또는 출발을 위한 레이블과 함께 보조
이 문제에서는 이진 트리가 제공됩니다. 그리고 루트에 루트의 데이터와 합이 같은 리프 경로에 대한 쌍이 있는지 찾아야 합니다. 루트 노드와 리프 노드 사이에 쌍의 값의 합이 루트 노드의 값과 같도록 노드 쌍이 존재하는지 확인해야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: 출력: 예 설명: 루트 노드 값 7 루트 노드, (2, 5), (1, 6)과 동일한 합계 값을 가진 쌍입니다. 해결 방법: 트리를 탐색하고 해싱을 사용하여 쌍을 찾아야 합니다. 이를 위해 hashTable과
이 문제에서는 정수 값으로 구성된 n 크기의 배열 arr[]이 제공됩니다. 우리의 임무는 합계가 0인 하위 배열이 있는지 찾는 것입니다. 주어진 배열에 모든 요소의 합이 0인 하위 배열이 포함되어 있는지 확인해야 합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력: arr[] ={3, 1, -2, 1, 4, 5} 출력: 예 설명: 하위 배열 {1, -2, 1}은 모든 값의 합이 0입니다. 해결 방법: 모든 하위 배열을 고려하고 모든 요소의 합이 0인지 확인하여 문제에 대한 간단한 솔루션입니다. 문제에
이 문제에서는 1과 -1과 정수 값 k로 구성된 배열 arr[]이 제공됩니다. 우리의 임무는 -1과 +1의 배열에서 합이 0인 크기 K의 하위 집합이 있는지 찾는 것입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: arr[] ={-1, 1, -1, -1, 1, 1, -1}, k =4 출력: 예 설명: 크기 4, {-1, 1, -1, 1}의 하위 집합입니다. 합계 =-1 + 1 - 1 + 1 =0 해결 방법: 합이 0인 크기 k의 부분 집합이 있는지 확인해야 합니다. 부분 집합으로 배열의 모든 요소를
이 문제에서 출발점을 나타내는 4개의 정수가 주어졌고 각 경주에서 점프를 했습니다. 우리의 임무는 같은 횟수의 점프 후에 두 사람이 만나는지를 찾는 것입니다. 문제 설명: 여기에서 p1과 p2 지점에서 시작하여 j1과 j2 점프를 하는 두 사람이 경로의 어떤 지점에 있는지 확인해야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: p1 =5, p2 =9, j1 =4, j2 =2 출력: 예 설명: 첫 번째 점프 후 p1 =9, p2 =11 두 번째 점프 후 p1 =13, p2 =13 해결 방법:
이 문제에서는 크기가 n과 n+1인 두 개의 정렬된 배열 arr1과 arr2가 제공되며 추가 요소를 제외하고는 모든 요소가 동일합니다. 우리의 임무는 하나의 정렬된 배열에 있는 추가 요소의 인덱스를 찾는 것입니다. . 문제 설명: 크기가 n인 배열에 없는 n+1 크기의 배열에서 요소의 인덱스를 찾아야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: arr1[n] ={3, 5, 7, 8, 9, 12} arr2[n+1] ={3, 4, 5, 7, 8, 9, 12} 출력: 1 설명: 값이 4인 요소는 인덱스 1에
이 문제에서는 n개의 정수로 구성된 배열 arr[]가 제공됩니다. 우리의 임무는 배열 요소의 최대 수를 나누는 정수를 찾는 것입니다. 문제 설명: 배열의 최대 요소 수를 나눌 수 있는 숫자 p를 찾아야 합니다. 그러한 요소가 둘 이상인 경우 더 작은 요소를 반환합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: arr[] ={4, 5, 6, 7, 8} 출력: 2 설명: 요소 2는 {4, 6, 8}을 나눕니다. 솔루션 접근 방식 문제에 대한 간단한 해결책은 배열을 반복한 다음 배열의 각 요소에 대해
이 문제에서는 항목과 해당 값과 정수 k로 구성된 목록이 제공됩니다. 우리의 임무는 가장 낮은 값을 가진 K개의 항목을 찾는 것입니다. 문제 설명: 목록에서 값이 가장 낮은 k 항목을 찾아야 합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력: 항목 값 ={ {항목1, 200}, {항목2, 100}, {항목3, 500}, {항목4, 400}} k =2 출력: 항목1, 항목2 설명: 값이 가장 작은 두 요소는 item1이 200이고 item2가 100입니다. 솔루션 접근 방식 이 문제에 대한 해결책은 탐욕스럽
이 문제에서는 n개의 요소로 구성된 배열 arr[]이 제공됩니다. 우리의 임무는 배열의 최대 k개 요소를 원래 순서대로 찾는 것입니다. 배열의 최대 k개 요소를 찾은 다음 원래 인덱싱된 대로 인쇄해야 합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력: arr[] ={5, 1, 3, 6, 2}, k =2 출력: 5, 6 설명: 배열의 가장 큰 두 요소는 6과 5입니다. 그러나 원래 배열에서는 5가 6보다 먼저 오기 때문에 그런 방식으로 인쇄했습니다. 솔루션 접근 방식 문제를 해결하려면 k 요소를 원래 순서대
이 문제에서는 n개의 범위와 정수 k가 주어집니다. 우리의 임무는 주어진 n 범위에서 k번째로 작은 요소를 찾는 것입니다. 범위를 결합한 후 생성된 배열에서 k번째로 작은 요소를 찾아야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: 범위 ={{2, 5}, {7, 9}, {12, 15}}, k =9 출력: 13 설명: 생성된 배열은 {2, 3, 4, 5, 7, 8, 9, 12, 13, 14, 15}입니다. 가장 작은 요소는 13입니다. 해결 방법: 이 문제에 대한 간단한 해결책은 모든 범위에서
이 문제에서는 연결 목록과 숫자 k가 제공됩니다. 우리의 임무는 중간에서 연결 목록의 머리 쪽으로 k번째 노드를 찾는 것입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: 5, k =2 출력: 7 설명: 중간 노드 값은 9입니다. 중간에서 머리쪽으로 두 번째 노드는 7입니다. 솔루션 접근 방식 연결 목록의 중간에서 시작 부분을 향해 k번째 요소를 찾아야 합니다. 이를 위해 연결 목록을 처음부터 끝까지 순회하여 연결 목록의 크기를 찾고 크기를 찾아야 합니다. 중간에서 시작으로 K 요소는 시작에서 (n/
이 문제에서는 두 개의 정수 값 n과 k가 주어집니다. 우리의 임무는 모든 홀수가 삭제되었을 때 범위 [1, n]에서 k번째로 작은 수를 찾는 것입니다. 짝수 값만 포함하는 [1, n] 범위에서 k번째로 작은 수를 찾아야 합니다. 숫자는 2, 4가 됩니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력: n =12, k =4 출력: 8 설명: [1, n] 범위의 짝수 요소:2, 4, 6, 8, 10, 12 네 번째로 작은 요소는 8입니다. 해결 방법: 짝수에서 n까지의 k번째 요소를 찾아야 하므로 솔