알고리즘/문제 풀이

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

Themion 2021. 12. 23. 15:47

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

 

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

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

www.acmicpc.net

출석번호를 배열에 저장해 정렬한 뒤 없는 수를 찾는 것보단, 길이 30짜리 bool 배열에 과제를 제출한 학생을 표시한 뒤 배열을 순차적으로 탐색하며 과제를 제출하지 않은 학생의 출석번호를 차례로 출력하는 것이 더 간편하다.

#include <cstdio>

#define N 30

int main() {
    // ans[i]: i번째 학생이 과제를 제출했다면 true, 아니라면 false
	bool ans[N] = { false, };
    // 입력을 ans에 바꿔서 저장하기 위한 변수
	int buf;

    // 과제를 제출한 학생의 출석번호를 받아 ans에 표시
	for (int i = 2; i < N; i++) {
		scanf("%d", &buf);
		ans[buf - 1] = true;
	}

    // 과제를 제출하지 않은 학생의 출석번호를 반환
	for (int i = 0; i < N; i++) if (!ans[i]) printf("%d\n", i + 1);

    return 0;
}

'알고리즘 > 문제 풀이' 카테고리의 다른 글

5639번: 이진 검색 트리  (0) 2021.12.23
5622번: 다이얼  (0) 2021.12.23
5582번: 공통 부분 문자열  (0) 2021.12.23
5543번: 상근날드  (0) 2021.12.23
5525번: IOIOI  (0) 2021.12.23