반응형
백준 5597 과제 안 내신 분..? 문제이다.
https://www.acmicpc.net/problem/5597
5597번: 과제 안 내신 분..?
X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데,
www.acmicpc.net
< 문제 >
X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다.
교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오.
간단히 정리하면 1부터 30까지의 수가 입력되어 있는 배열중에서 없는 숫자를 찾는거다
먼저 코드를 보도록 한다.
#include <iostream>
using namespace std;
int main() {
int array[31] = { 0, };
int n;
for (int i = 1; i <= 28; i++) {
cin >> n;
array[n] = n;
}
for (int i = 1; i <= 30; i++) {
if (array[i] == 0) {
cout << i << endl;
}
}
}
먼저 배열을 선언해준 후 문제에서 2명이 제출하지 않았기 때문에 for문의 조건식에 i<=28로 설정하였다.
그리고 각각의 배열에 값을 입력해주었다.
array[1] = 1, array[20] = 20 이런식으로 입력되게 하였고
두번째 for문에서는 입력되지 않은 값은 초기에 0으로 설정해두었기 때문에
배열의 값이 0일 때의 i의 값을 출력하게 하였다.
* 문제에서는 2, 8이 없었으므로 i가 2일때, i가 8일때 array의 값이 0
어려워 보여도 손으로 적어가면서 푸는게 확실히 도움이 되는 것 같다
반응형
'백준 > 단계별' 카테고리의 다른 글
[C++] 백준 8958 (0) | 2022.12.09 |
---|---|
[C++] 백준 3052 (0) | 2022.12.09 |
[C++] 백준 2562 (0) | 2022.12.09 |
[C++] 백준 1110 (0) | 2022.12.08 |
[C++] 백준 2438, 2439 (0) | 2022.12.08 |