알고리즘 문제풀이/백준

백준 3040-백설 공주와 일곱 난쟁이

www.acmicpc.net/problem/3040

 

3040번: 백설 공주와 일곱 난쟁이

문제 매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비�

www.acmicpc.net

#include <iostream>
#include <algorithm>

using namespace std;

//문제 정의: 9개의 수를 이용해서 100의합을 만드는 방법

int main() {

  int input[9];
  int result = 0;
  int total = 0;
  int answers[7] = {};
  int count = 0;
  int index1, index2 = 0;
  
  for(int i = 0; i<9; i++){
    cin >> input[i];
    total += input[i];
  }

//9개를 다 더한거에서 하나씩 빼면서 다른 값을 발견하면 스톱
//예)115-5; 110남는데 110-100인 10을 찾으면 나머지가 정답
//예)115-23 인데 100아래면, 스톱! !
  for(int i=0; i<9; i++){
   result = total - input[i]-100;

   //나를 빼고 찾아야함. 내 인덱스 빼고
    for(int j = 0; j<9; j++){
       if(j == i){
         continue;
       }
       if(input[j] == result){
        index1 = j;
        index2 = i;
        break;
       }
    }

  }

  count = 0;
  //여기서 한 실수,, answers[count]가 아니라 answers[i]를 출력해서 쓰레기 값이 출력됨.. 
  for(int i = 0; i<9; i++){
    if(i != index1 && i!=index2){
      answers[count] = input[i];
      cout << answers[count] << endl;
      count++;
    }
  }


}