2309号7人の小人

1277 ワード

王妃が7人の小人と平和に共存する白雪姫を避けるためだ.👸危機が来た.一日の仕事を終えて帰ってきた矮人は7人ではなく、9人だった.
9人の小人はみな「白雪姫と7人の小人」の主役だと主張している.優れた数学的直感を持つ白雪姫は、幸いにも7人の小人の身長の和が100だったことを覚えている.
9人のジュニアの身長を手に入れたとき、白雪姫に7人のジュニアを探すプログラムを書いてください.
まず9人のジュニアの中から7人のジュニアの和を100に救出しなければならない.
ブルートフォース:暴力力=>完全ナビゲーションアルゴリズム
線形構造全体でナビゲート->順序
グローバルナビゲーション非線形構造
->深度優先ナビゲーション(DFS、Depth First Search)
->幅優先ナビゲーション(BFS、Breadth First Search)
9人のうち7人の組み合わせの問題ではありません.
9人の矮人の身長-(特定の2つの身長)の組み合わせは100です.
  • 総数を求め、残りの2つを
  • にプッシュ
    int Soultion(int *arr) {
    	int sum = Getsum(arr); // 전체의 sum 값을 구함
        
        	for(int i=0; i<8; i++) {
            	for(int j=i+1; j<9; j++) {
                if(sum - (arr[i]+arr[j]) == 100) }
                	arr[i] = -1
                    arr[j] = -1
                    return 0
                    }
               }
       	 return -1
     }
  • 9人中2人を抜いたグループ
  • for (int i=0;i<8;i++) {
    	int total = 0
        
        	for(int j=i+1;j<9;j++) {
            total = 0
            
            //나머지 7명의 값 저장
           	for(int k = 0, n = 0; n<9;n++) if(n!=i&&n!=j) result[n++] - num[n]
            // n++ 이유는 반복문 진행시 증가시켜야 배열에 순차대로 값이 들어감
            
        	    if(total == 100) break // 반복문1 나옴
     	if(total == 100) break // 반복문2 나옴
    }