반응형
https://www.acmicpc.net/problem/5597
문제
X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다.
교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오.
풀이
28개의 입력을 받아서 30개의 번호중 입력을 안한 수를 출력하는 문제다.
접근을 어떻게 할까 생각하다가 입력을 하면 true, 입력을 하지 않으면 false라고 생각을 했다.
참/거짓을 좀 더 명시적으로 표현 할 수 있는 bool타입으로 코드를 작성했다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <iostream>
using namespace std;
int main() {
int a;
bool check[31]={0,};
for(int i=1; i<=28; i++){
cin>>a;
check[a]=1;
}
for(int j=1; j<=30; j++){
if(check[j]==0){
cout<<j<<"\n";
}
}
}
|
cs |
풀이2
줄9. 참/거짓을 정수로 표현하면 참=1, 거짓=0으로 해야하기 때문에 모든배열의 값을 0으로 초기화를 해준다.
줄11. 28개의 입력을 받기위한 for문을 만들고 1-28안에 있는 수를 입력했을때 그 배열은 참인 1로 바뀐다.
줄17. 28개의 입력을 다 받고 1로 바뀌지 않는 배열을 찾는 코드이다. = if(check[j]==0)
반응형
'백준 > C++' 카테고리의 다른 글
[BaeKJoon/C++] 백준16435 c++ 스네이크버드 (0) | 2021.07.22 |
---|---|
[BaeKJoon/C++] 백준2920 c++ 음계 (0) | 2021.07.11 |
[BaeKJoon/C++] 백준3058 c++ 짝수를 찾아라 (0) | 2021.07.01 |
[BaeKJoon/C++] 백준4493 c++ 가위 바위 보? (0) | 2021.07.01 |
[BaeKJoon/C++] 백준10768 c++ 특별한 날 (0) | 2021.06.30 |