https://www.acmicpc.net/problem/5597
시간 제한 | 메모리 제한 | solved.ac 티어 |
1초 | 128MB | 브론즈 2 |
문제
X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다.
교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오.
입력
입력은 총 28줄로 각 제출자(학생)의 출석번호 n(1 ≤ n ≤ 30)가 한 줄에 하나씩 주어진다. 출석번호에 중복은 없다.
출력
출력은 2줄이다. 1번째 줄엔 제출하지 않은 학생의 출석번호 중 가장 작은 것을 출력하고, 2번째 줄에선 그 다음 출석번호를 출력한다.
입력받은 28명의 번호에 따라 그 학생들은 제출했다고 기록한다. 이러면 제출하지 않은 두명이 자연스럽게 남게 되고, 앞에서부터 제출하지 않은 학생을 출력하면 자연스럽게 크기순으로 출력된다.
이때 편의를 위해 배열의 크기를 30이 아닌 31로 잡아 입력된 번호를 바로 배열의 인덱스로 사용할 수 있도록 했다.
#include <bits/stdc++.h>
using namespace std;
int main () {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int temp;
array<bool, 31> submit;
fill(submit.begin(), submit.end(), false);
for(int i = 0; i < 28; i++) {
cin >> temp;
submit[temp] = true;
}
for(int i = 1; i < 31; i++)
if(!submit[i]) cout << i << '\n';
}
'coding_test > BAEKJOON' 카테고리의 다른 글
백준 1874번 C++ 풀이 (0) | 2022.02.13 |
---|---|
백준 20364번 C++ 풀이 (0) | 2022.02.06 |
백준 1456번 C++ 풀이 (0) | 2022.02.06 |
백준 5002번 C++ 풀이 (0) | 2022.02.06 |
백준 11047번 C++ 풀이 (0) | 2022.02.02 |