Programming
Study/Programming / / 2024. 3. 28. 10:43

BOJ 5597번 : 과제 안 내신 분..? / C언어

728x90

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

 

5597번: 과제 안 내신 분..?

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

www.acmicpc.net

 

해설:

1. stu라는 크기가 31인 배열을 선언. 이 배열은 학생의 출석번호를 저장함. 배열의 인덱스는 출석번호를 나타내며, 해당 인덱스에는 출석번호가 저장됨.

2. 28명의 학생이 특별과제를 제출했으므로, 28번 반복하는 루프를 실행. 각 반복에서 사용자로부터 학생의 출석번호를 입력받고, stu 배열에 해당 출석번호를 저장.
3. 모든 학생의 출석번호를 확인하며, 제출하지 않은 학생의 출석번호를 출력. 이를 위해 1부터 30까지의 모든 출석번호를 확인하고, stu 배열에서 해당 출석번호의 값이 0인 경우에만 출력.


코드:

더보기

#include <stdio.h>

int main()
{
    int stu[31] = {0}; // 각 학생의 출석번호를 저장할 배열, 인덱스는 출석번호, 초기값은 0으로 설정
    int hi; // 학생의 출석번호를 임시로 저장할 변수
    
    // 28명의 학생이 특별과제를 제출한 출석번호를 입력받고, 배열에 해당 출석번호를 표시
    for(int i=0; i < 28; i++){
        scanf("%d", &hi); // 학생의 출석번호를 입력받음
        stu[hi] = hi; // 해당 출석번호를 stu 배열에 저장
    }
    
    // 모든 학생의 출석번호를 확인하며, 특별과제를 제출하지 않은 학생의 출석번호를 출력
    for (int i = 1; i < 31; i++) {
        if (stu[i] == 0) printf("%d\n", i); // stu 배열에서 값이 0인 출석번호를 출력
    }
    
    return 0;
}

728x90
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유