백준 단계별로 풀어보기(C++)/4)1차원 배열

백준 5597) 과제 안 내신 분..? (C++)

코테 2023. 3. 12. 05:28

전체 코드

#include <iostream>

int main()
{
	int arr[31] = { 0, };
	int num;
	for (int i = 1; i <= 28; i++)
	{
		std::cin >> num;
		arr[num] = 1;
	}

	for (int i = 1; i <= 30; i++)
	{
		if (arr[i] == 0)
			std::cout << i << std::endl;
	}
}

풀이

  • 번호는 최대 30번임, arr[30]을 선언하면 0부터 29까지 이용 가능, 인덱스를 30까지 이용하기 위해 arr[31]로 선언
  • 출석하면 1, 아니면 0의 값을 가지도록 미리 0으로 전체초기화
int arr[31] = { 0, };
  • 1부터 28까지 반복하는 반복문 : 입력을 28번 받기 때문
  • num값(출석번호)을 입력받음
  • 해당 num을 인덱스로 가지는 배열의 값을 1로 설정
for (int i = 1; i <= 28; i++)
{
	std::cin >> num;
	arr[num] = 1;
}
  • 1부터 30까지 총 학생수만큼 반복하는 반복문
  • 만약 해당 인덱스가 0이라면 해당 i값(번호) 출력
for (int i = 1; i <= 30; i++)
{
	if (arr[i] == 0)
		std::cout << i << std::endl;
}