백준 문제풀이/브론즈1
백준 1453번 - 피시방 알바
void_melody
2021. 10. 28. 11:54
https://www.acmicpc.net/problem/1453
1453번: 피시방 알바
첫째 줄에 손님의 수 N이 주어진다. N은 100보다 작거나 같다. 둘째 줄에 손님이 들어오는 순서대로 각 손님이 앉고 싶어하는 자리가 입력으로 주어진다.
www.acmicpc.net
사고과정)
1. 원하는 자리들에 1을 넣어줌.
2. 전체 자리를 살펴보면서, 0이 아닌 경우(즉, 자리가 있는 경우)의 수를 셈.
3. 만약 처음 들어온 사람 수 == 자리 있는 경우 라면, 중복이 없는 경우이니 그냥 0출력.
4. 만약 처음 들어온 사람 수 != 자리 있는 경우 라면, 중복이 있는 경우이다.
이럴 때 중복된 사람 수 를 출력해야하니 (처음 들어온 사람수 - 사람이 있는 자리 수)를 하면, 거절 당한 사람 수겠지.
#include <iostream>
using namespace std;
int main()
{
int num = 0;
cin >> num;
int seat[100] = { 0, };
int temp = 0; int cnt = 0;
for (int i = 0; i < num; i++)
{
cin >> temp;
seat[temp - 1] = 1;
}
for (int i = 0; i < 100; i++)
{
if (seat[i] != 0)
cnt++;
}
if (num == cnt)
{
cout << 0 << endl;
return 0;
}
else
{
cout << num - cnt << endl;
return 0;
}
}