부분적으로 채워진 스도쿠 그리드가 있고 이것을 해결해야 한다고 가정합니다. 우리는 스도쿠가 9 × 9 숫자 그리드라는 것을 알고 있으며 전체 그리드도 3 × 3 상자로 나뉩니다. 스도쿠를 푸는 몇 가지 규칙이 있습니다. 이 문제를 해결하려면 1에서 9까지의 숫자를 사용해야 합니다. 하나의 행, 하나의 열 또는 하나의 3 × 3 상자에서 하나의 숫자를 반복할 수 없습니다. 역추적 알고리즘을 사용하여 스도쿠 문제를 해결하려고 합니다. 일부 셀이 숫자로 채워지면 유효한지 여부를 확인합니다. 유효하지 않은 경우 다른 번호를
주어진 이진 트리에서 모든 오른쪽 잎의 합을 찾아야 하는 이진 트리가 있다고 가정합니다. 따라서 입력이 다음과 같으면 이진 트리에 두 개의 오른쪽 잎이 있고 값이 각각 7과 10이기 때문에 출력은 17이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − dfs() 함수를 정의하면 노드, 추가,가 필요합니다. 노드가 null이면 - 반환 노드의 왼쪽이 null이고 노드의 오른쪽이 null이고 add가 0이 아닌 경우 - ret :=ret + 노드의 val dfs(노드 왼쪽,
이진 트리가 있다고 가정합니다. 우리는 가장 깊은 잎의 값의 합을 찾아야 합니다. 트리가 다음과 같다면 - 그러면 출력은 11이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 맵 정의 m 및 maxDepth 재귀 메서드 solve()를 정의하면 노드와 레벨이 사용되며 초기 레벨은 0입니다. 노드가 없으면 반환 maxDepth :=레벨 및 maxDepth의 최대값 노드의 값만큼 m[레벨] 증가 해결(노드 왼쪽, 레벨 + 1) 해결(노드 오른쪽, 레벨 + 1) 기본 방법에
양의 정수 값이 있다고 가정합니다. 스프레드시트에 나타나는 해당 열 제목을 찾아야 합니다. 따라서 [1 :A], [2 :B], [26 :Z], [27 :AA], [28 :AB] 등 따라서 입력이 29와 같으면 출력은 AC가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n이 0이 아닌 동안 수행 - n :=n − 1 res :=res + n mod 26 + A의 ASCII n :=n / 26 배열 res 반전 반환 해상도 이해를 돕기 위해 다음 구현을 살펴보겠습니다. − 예
스프레드시트의 열 제목이 있다고 가정합니다. 스프레드시트 열 번호는 알파벳순이라는 것을 알고 있습니다. A에서 시작하여 Z 다음에는 AA, AB, ZZ, 다시 AAA, AAB, ZZZ 순으로 진행됩니다. 따라서 1열은 A, 27열은 Z입니다. 여기에서 열의 개수가 주어졌을 때 열 문자를 얻는 방법을 살펴보겠습니다. 따라서 열 번호가 80이면 CB가 됩니다. 따라서 숫자에서 해당 열 제목을 찾아야 합니다. 입력이 30이면 AD가 됩니다. 예시 #include<iostream> #include<algorithm>
모든 노드의 값이 0 또는 1인 이진 트리가 있다고 가정합니다. 1을 포함하지 않는 모든 하위 트리가 삭제된 동일한 트리를 찾아야 합니다. 트리가 다음과 같다면 - 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 재귀 메서드 solve()를 정의하면 노드가 사용됩니다. 방법은 다음과 같습니다 - 노드가 null이면 null을 반환합니다. 노드 왼쪽 :=해결(노드 왼쪽) 노드 오른쪽 :=solve(노드 오른쪽) 노드의 왼쪽이 null이고 노드의 오른쪽도 null이고 노드 값이 0이면 null을 반환
숫자 배열이 있다고 가정하고 삼각형의 한 변의 길이로 취하면 삼각형을 만들 수 있는 배열에서 선택된 세 개의 삼각형을 찾아야 합니다. 따라서 입력이 [2,2,3,4]와 같으면 첫 번째 2를 사용하는 세 개의 트리플렛 [2,3,4], 두 번째 2를 사용하는 [2,3,4]가 있으므로 결과는 3이 됩니다. [2,2,3]. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ret :=0, n :=숫자의 크기, 숫자 정렬 범위 n − 1에서 0까지의 i에 대해 오른쪽 :=i − 1, 왼쪽 :=0 왼쪽 <오른쪽 동안
길이가 n이고 숫자가 M인 정수 배열 Arr[]이 제공됩니다. 배열에는 양의 정수만 포함됩니다. 목표는 곱이 M과 같은 Arr[] 요소의 삼중항을 계산하는 것입니다. 세 개의 for 루프를 사용하여 이를 수행할 것입니다. arr[x]*arr[y]*arr[z]=M이고 x!=y!=z인 경우 카운트를 증가시킵니다. (0<=x,y,z 예를 들어 이해합시다. 입력 arr[]= { 1,2,3,0,2,4 }, M=24 출력 Number of triplets with product M: 2 설명 Triplets with arr[x]
숫자 범위를 정의하기 위해 두 개의 숫자 START와 END가 제공됩니다. 목표는 2와 3만 소인수로 갖고 [START,END] 범위에 있는 숫자를 찾는 것입니다. START에서 END까지 숫자를 순회하여 이를 수행하고 각 숫자에 대해 숫자가 2와 3으로만 나누어 떨어지는지 확인합니다. 나눌 수 있으면 나누어서 줄이십시오. 그렇지 않은 경우 루프를 끊습니다. 결국 숫자가 1로 줄어들면 인수는 2와 3뿐입니다. 예를 들어 이해합시다. 입력 START=20 END=25 출력 소인수로 2와 3만 있는 숫자:1 설명 각 수의
숫자 N이 제공됩니다. 목표는 숫자가 0이고 [1,N] 범위에 있는 숫자를 찾는 것입니다. 0이 될 때까지 숫자를 확인합니다. 예를 들어 이해합시다. 입력 N=11 출력 Numbers from 1 to N with 0 as digit: 1 설명 Starting from i=10 to i<=11 Only 10 has 0 as a digit. No need to check the range [1,9]. 입력 N=100 출력 Numbers from 1 to N with 0 as digit: 10 설명 10,
숫자 범위를 정의하기 위해 두 개의 숫자 START와 END가 제공됩니다. 또한 양수 Arr[]의 배열입니다. 목표는 Arr[]의 모든 요소로 나눌 수 있고 [START,END] 범위에 있는 모든 숫자를 찾는 것입니다. 방법 1(순진한 접근) START에서 END까지 숫자를 탐색하여 이를 수행하고 각 숫자에 대해 숫자가 배열의 모든 요소로 나눌 수 있는지 확인합니다. 예인 경우 카운트를 증가시킵니다. 방법 2(배열 요소의 LCM으로 분할 가능성 확인) 모든 배열 요소의 LCM을 찾은 다음 해당 LCM으로 완전히 나눌 수 있는 [
숫자 N이 제공됩니다. 목표는 Y가 아닌 X로 나눌 수 있고 [1,N] 범위에 있는 숫자를 찾는 것입니다. 예를 들어 이해합시다. 입력 N=20 X=5 Y=20 출력 Numbers from 1 to N divisible by X not Y: 2 설명 Only 5 and 15 are divisible by 5 and not 10. 입력 N=20 X=4 Y=7 출력 Numbers from 1 to N divisible by X not Y: 5 설명 Numbers 4, 8, 12, 16 and 20 are divi
숫자 범위를 정의하기 위해 두 개의 숫자 START 및 END가 제공됩니다. 목표는 [START,END] 범위에서 0이 아닌 모든 숫자로 나눌 수 있는 모든 숫자를 찾는 것입니다. START에서 END까지 숫자를 탐색하여 이를 수행하고 각 숫자에 대해 while 루프를 사용하여 숫자가 0이 아닌 모든 숫자로 나눌 수 있는지 확인합니다. 예인 경우 카운트를 증가시킵니다. 예를 들어 이해합시다. 입력 START=10 END=20 출력 0이 아닌 모든 숫자로 나눌 수 있는 숫자:14 설명 숫자 10, 11, 12, 15, 2
D. 1에서 N까지 숫자를 탐색하여 이를 수행하고 각 숫자에 대해 while 루프를 사용하여 숫자 합계를 계산합니다. 숫자와 계산된 자릿수의 합이 D 이상 차이가 나는지 확인하십시오. 예를 들어 이해합시다. 입력 N=15 D=5 출력 숫자 차이 b/w no. 값 D보다 큰 숫자 합:6 설명 숫자 10, 11, 12, 13, 14, 15가 조건을 만족합니다. ( 10-1, 11-2, 12-3, 13-4, 14-5, 15-6 ) 모든 차이는 5보다 큰 9입니다. 입력 N=20 D=10 출력 10. 설명 다음은
두 개의 숫자 A와 B가 제공됩니다. 또한 숫자 범위를 정의하기 위해 두 개의 숫자 START와 END가 제공됩니다. Ath 타일에는 흰색 페인트가 있고 Bth 타일에는 검정색 페인트가 있습니다. 타일을 흑백으로 칠하면 회색으로 바뀝니다. 목표는 회색 타일의 총 개수를 찾는 것입니다. START에서 END까지 숫자를 순회하여 이 작업을 수행하고 각 숫자에 대해 숫자가 A와 B의 배수인지 확인합니다. 그렇다면 숫자를 증가시킵니다. 예를 들어 이해합시다. 입력 START=10 END=20 A=3 B=6 출력 Common mu
숫자 범위를 정의하기 위해 두 개의 숫자 START와 END가 제공됩니다. 목표는 [START,END] 범위에서 주어진 숫자 Y와 자릿수의 합이 같은 모든 숫자를 찾는 것입니다. START에서 END까지 숫자를 탐색하여 이를 수행하고 각 숫자에 대해 while 루프를 사용하여 숫자의 합을 계산합니다. 이 합계가 Y와 같으면 카운트를 증가시킵니다. 예를 들어 이해합시다. 입력 START=10 END=20 Y=4 출력 Numbers such that digit sum is equal to Y: 1 설명 Number 13
숫자 범위를 정의하기 위해 두 개의 숫자 START와 END가 제공됩니다. 목표는 0과 같은 숫자가 없고 주어진 숫자 N과 동일한 숫자의 합을 갖는 [START,END] 범위의 모든 숫자를 찾는 것입니다. 또한 숫자는 M으로 나눌 수 있습니다. START에서 END까지 숫자를 탐색하여 이를 수행하고 각 숫자에 대해 while 루프를 사용하여 숫자의 합을 계산합니다(모든 숫자가 0이 아닌 경우에만). 이 합계가 N이고 숫자가 M으로 나누어지면 카운트를 증가시킵니다. 예를 들어 이해합시다. 입력 START=1 END=100 N=
정수 배열이 제공됩니다. 목표는 주어진 값 K보다 작거나 같은 배열 요소의 개수를 찾는 것입니다. 입력 Arr[]= { 1, 2, 3, 14, 50, 69, 90 } K=12 출력 Numbers smaller or equal to K: 3 설명 Numbers 1,2,3 is smaller or equal to 12. 입력 Arr[]= { 12, 13, 13, 13, 14, 50, 54, 100 } K=14 출력 Numbers smaller or equal to K: 5 설명 Numbers 12, 13, 14 a
우리에게 두 개의 숫자 S와 K가 주어졌습니다. 목표는 합이 S이고 XOR이 K가 되는 순서쌍의 양수를 찾는 것입니다. i=1에서 시작하여 i
우리에게 숫자 N이 주어졌습니다. 목표는 곱이 N보다 작도록 양수의 순서쌍을 찾는 것입니다. i=1에서 시작하여 i