본문 바로가기
코딩테스트 | 백준

[백준 5597 | C++] 과제 안 내신 분..?_ 1차원 배열 (배열 비교, 배열에서 없는 수 찾기, array, for)

by 솨앙 2025. 1. 11.
반응형

백준 5597 | C++ 과제 안 내신 분 ..?

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

문제

X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다.

교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오.

백준_5597_과제_안_내신_분..?

접근 방법

백준_5597_접근

제출한 사람 번호를 받는 배열을 한 개 만든다 : 28명
• 제출한 사람 번호를 입력 받는다
제출한 사람을 체크하는 배열을 한 개 만든다 : 30명(크기 : 31)
• 0번째 제외(0번째는 1) 0으로 초기화
• 제출한 사람(인덱스) -> 1로 표시
0인 인덱스만 출력

정답 코드

#include <iostream>

using namespace std;

int main(){
    int arr[28];
    int submit[31]= {1,};
    
    for(int i = 0; i<28;i++){
        cin>>arr[i];
    } for(int i = 0 ; i < 28 ; i++){
        submit[arr[i]] = 1;
    }
   for(int i = 0 ; i< 31; i++){
       if(submit[i] != 1){
           cout << i <<endl;
       }
   }
    return 0;
}

코드 설명

    int arr[28];
    int submit[31]= {1,};

- Arr : 제출한 학생들의 번호를 담기 위한 배열

- Submit : 누가 제출했는지 체크하기 위한 배열

- Submit [0] 은 1로 채워준다 : 0으로 채운 인덱스를 출력할 것이기 때문에

    for(int i = 0; i<28;i++){
        cin>>arr[i];
    } for(int i = 0 ; i < 28 ; i++){
        submit[arr[i]] = 1;
    }

- arr[i]에 있는 숫자를 인덱스로 받아 해당 번호는 1로 채워준다(숙제를 제출함)

   for(int i = 0 ; i< 31; i++){
       if(submit[i] != 1){
           cout << i <<endl;
       }
   }

- 1이 아닌 인덱스 출력

 

5597 과제 안 내신 분.pdf
0.28MB

반응형