Skip to main content

NQUEEN's PROBLEM

using System;
public class GFG
{
static int n;
static public void Main ()
{
var TC = Console.ReadLine();
int T = Convert.ToInt32(TC);
for(int a=0;a<T;a++)
{
    var no= Console.ReadLine();
     n = Convert.ToInt32(no);
    int [,]board =  new int [n,n];
    InitializeBoardWithZeros(board,n,n);
    SolveNQueen(board,0);
    PrintBoard(board,n,n);
}
}
static public void InitializeBoardWithZeros(int [,]board,int row,int col)
{
    for(int i=0;i<col;i++)
    {
        for(int j=0;j<row;j++)
        {
            board[i,j]=0;
        }
    }
   
}
static public void PrintBoard(int [,]board,int row,int col)
{
for(int i=0;i<col;i++)
    {
        for(int j=0;j<row;j++)
        {
            Console.Write(" {0}",board[i,j]);
        }
        Console.WriteLine();
    }
     Console.WriteLine();
}
static public bool SolveNQueen(int[,]board,int col)
{
if(col>=n)
return true;
//iterating for col 0 ,then 1,2 nd so on recursively
//here i=row
    for(int i=0;i<n;i++)
    {
if(IsSafe(board,i,col))
{
board[i,col]=1;
if(SolveNQueen(board,col+1))
return true;
    board[i,col]=0;
}
    }
    return false;
}
static public bool IsSafe(int[,]board,int row,int col)
{
//checking the elements in the same row - different column(horizontal line)
//here we are checking only the left side - fail first strategy
for(int i=0;i<col;i++)
{
if(board[row,i]==1)
return false;
}
//checking the upper diagonal to the left
for(int i=row,j=col;i>=0 && j>=0;i--,j--)
{
if(board[i,j]==1)
return false;
}
//checkinh the lower diagonal to the left
for(int i=row,j=col;i<n&&j>=0;i++,j--)
{
if(board[i,j]==1)
return false;
}
return true;
}
}


OUTPUT
n=5
 1 0 0 0 0
 0 0 0 1 0
 0 1 0 0 0
 0 0 0 0 1
 0 0 1 0 0

Comments

Popular posts from this blog

Print word pattern - odd letters - beginner's code

1. Print the word with odd letters as P M R A O R G O R R A P M Solution: using System; public class Test { public static void Main() { string text = Console.ReadLine(); int n=text.Length; Pattern print = new Pattern (); print.XPattern(text,n); } } public class Pattern { public void XPattern(string text,int n) { char[] textarray = text.ToCharArray(); int reverseprinter = n-1; int middleLetter = n/2; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { if(i==j && j!=middleLetter) { Console.Write(textarray[j]); } else if(j==reverseprinter) { Console.Write(textarray[reverseprinter]); reverseprinter--; } else { Console.Write("*"); } } Console.WriteLine(); } } } OUTPUT Please Enter text: INPUT : program p m r a o r g o r r a p m

GRANDSON PROBLEM

https://www.geeksforgeeks.org/zoho-interview-set-1-campus/ Given a two dimensional array of string like <”luke”, “shaw”> <”wayne”, “rooney”> <”rooney”, “ronaldo”> <”shaw”, “rooney”> Where the first string is “child”, second string is “Father”. And given “ronaldo” we have to find his no of grandchildren Here “ronaldo” has 2 grandchildren. So our output should be 2. SOLUTION using System; public class Test { public static void Main() { var noOfInputs = Console.ReadLine(); int noOfInputLines = Convert.ToInt32(noOfInputs); string[,] FatherSonArray= new String[noOfInputLines,noOfInputLines]; for(int father=0;father<noOfInputLines;father++) { for(int son=0;son<2;son++) { FatherSonArray[father,son] = Console.ReadLine(); } }     Console.WriteLine("No of grandchildrens:");     string GrandFather = Console.ReadLine();     int NoOfGrandSons=0;     Console.WriteLine(GrandFather);     s

BEGINNER's ALPHABET PALINDROME

PRINT ALPHABET PALINDROMIC PYRAMID USING C# using System; public class Test {       public static void Main()       {             var number = Console.ReadLine();             int n = Convert.ToInt32(number);             Pattern print = new Pattern();             print.PrintPalindromePattern(n);       } } public class Pattern {       public void PrintPalindromePattern(int n)       {             int dummy = 1;             char letter = 'A';             int reversepalindrome;             char letteraftereachIteration ='A';             char reverseletter ='A';             for(int i=1;i<=n;i++)             {                     reversepalindrome = i-1;                   for(int j=1;j<=dummy;j++)                   {                         if(j<=i)                         {                         Console.Write(letter++);                         }                         else                         {