BOJ/[ BOJ ] C++

[ C++ ] #2309 (일곱 난쟁이)

haena02 2022. 2. 9. 01:59
반응형

여러 방법으로 시도했는데... 안된다 악악!!!

내가 해본 방법은 (9개 합 - 100) 해서 나온 값을 저장하고 

난쟁이들의 키를 하나하나 더해서 그 값이 나오는걸 찾앗 지운다. 

였다

하지만 되지 않는다.....

오랜시간 고민하고 답지를 봤다.

 

하.. 알고리즘은 생각했던건데 구현방법을 모르겠어서 포기했던 방법이 정답이었다.

나중에 다시 풀어봐야겠다

 

#include <bits/stdc++.h>
using namespace std;

int num[9], result[7];

int main(void) {
  ios::sync_with_stdio(0);
  cin.tie(0);
    
  for(int i = 0; i < 9; i++) cin >> num[i];
    
  // 9명 중 2명을 뺀 모든 조합 고려
  for(int a = 0; a < 8; a++) {
    int total = 0;
        
    for(int b = a + 1; b < 9; b++) {
      total = 0;
            
      // 나머지 7명 저장
      for(int c = 0, i = 0; c < 9; c++) if(c != a && c != b) result[i++] = num[c];
      for(int i = 0; i < 7; i++) total += result[i];
            
      // 7명 키의 합이 100인 경우
      if(total == 100) break;
    }
    if(total == 100) break;
  }
    
  // 정렬 후 출력
  sort(result, result + 7);
  for(int i = 0; i < 7; i++) cout << result[i] << "\n";
}
반응형

'BOJ > [ BOJ ] C++' 카테고리의 다른 글

[ C++ ] #1267 ( 휴대폰 요금 )  (0) 2022.02.09
[ C++ ] #10093 ( 숫자 )  (0) 2022.02.09
[ C++ ] #2587 (대표값)  (0) 2022.02.08
[ C++ ] #2576 ( 홀수 )  (0) 2022.02.08
[ C++ ] #2480 (주사위 세개)  (0) 2022.02.08