[C언어 코드업 문제풀이] CodeUp 1411 : 빠진 카드

코드업 1411번 빠진 카드 문제 풀이 해답입니다.

 

1. 문제 설명

 

우리는 1부터 N까지의 숫자가 차례대로 적힌 N장의 카드 묶음을 가지고 있다.

그런 데 이 카드 묶음을 옮기는 중 실수로 땅에 떨어뜨려 그 중 한 장을 잃어버렸다.

여러 분은 땅에 떨어진 카드 묶음을 읽어서 빠진 하나의 카드 번호를 찾아 출력해야 한다.

 

2. 입력

 

첫 줄에는 한 장을 잃어버리기 전 카드의 전체 장수 N이 주어져 있다. 단 . 3 <= N <= 50 이다.

이어지는 N-1개의 각 줄에는 한 장이 빠진 카드 묶음의 카드 숫자가 하나씩 순서 없이 나열되어 있다.

 

3. 출력

 

여러분은 주 어진 카드 묶음에서 빠진 하나의 카드를 찾아서 그 번호를 출력해야 한다.

 

4. 입력 예시

 

10

3

4

1

10

2

6

7

5

9

 

5. 출력 예시

 

8

 

6. 문제 풀이

2 3 9 12

 

#include<stdio.h>
 
 
int main(){
    
 
        
    int Arr_Card[50= {};
    int i_CardNum;
    
    scanf("%d",&i_CardNum);
    
    for(int i = 0; i<i_CardNum; i++){
        Arr_Card[i] = i+1;
    }
    
    int i_LoseCardNum;
    for(int j = 0; j<i_CardNum - 1; j++){
        scanf("%d",&i_LoseCardNum);
        Arr_Card[i_LoseCardNum-1= 0;
    }
    
    for(int k = 0; k<i_CardNum; k++){
        if(Arr_Card[k] != 0){
            printf("%d",Arr_Card[k]);
        }
    }
    
 
    return 0;
    
 
}
 
 

 

for(int i = 0; i<i_CardNum; i++){

        Arr_Card[i] = i+1;

 }

 

을 통해 입력받은 카드의 개수 만큼 1부터 ++된 수를 배열에 입력해줍니다.

 

for(int j = 0; j<i_CardNum - 1; j++){

        scanf("%d",&i_LoseCardNum);

        Arr_Card[i_LoseCardNum-1= 0;

    }

 

순서 없는 한 장이 빠진 카드 묶음의 카드 숫자를 입력 받습니다. 

배열은 0부터 시작하였으므로 4번 카드가 입력된다면 arr_card[3]이 선택되도록 -1을 해주었습니다.

이러한 배열에는 0을 대입해줍니다.

 

 for(int k = 0; k<i_CardNum; k++){

        if(Arr_Card[k] != 0){

            printf("%d",Arr_Card[k]);

        }

    }

 

카드의 개수만큼 for문을 돌리는데 0이 아닌 카드의 값을 출력해줍니다.

 

 

감사합니다.

 

 

댓글()