백준

[C언어] 백준 1940번: 주몽

d0ng2 2024. 8. 22. 13:46

 

  • 문제

https://www.acmicpc.net/problem/1940


  • 코드
#include <stdio.h>
// 백준 1940번: 주몽
int main(){

    int n,m;
    scanf("%d", &n);
    scanf("%d", &m);

    int arr[n];

    for(int i = 0; i < n; i++){
        scanf("%d", &arr[i]);
    }

    int count = 0;

    for(int i = 0; i < n; i++){
        for(int j = 0; j < n; j++){
            if((i != j) && (arr[i] != 0) && (arr[j] != 0)){
                if(arr[i] + arr[j] == m){
                    count++;
                    arr[i] = 0;
                    arr[j] = 0;
                    break;
                }
            }
        }
    }

    printf("%d\n", count);
    

    return 0;
}

  • 문제풀이방법
  1. 배열에 재료의 고유 번호를 저장한다.
  2. 전체 재료 중에 2개를 선택하기 위해 2중 for문을 사용한다. 
  3. 같은 재료를 사용하는 경우는 제외, 고유 번호가 0일 경우 제외
  4. 두 재료의 합이 M과 같다면 count(만들 수 있는 갑옷의 수)를 1 증가시킨다.
  5. 사용한 재료의 고유 번호는 0으로 변경한다.(재활용 방지)