본문 바로가기
Programming/C++ - 백준

[백준] 5597번 : 과제 안 내신 분..? (C++)

by 지구코드 2024. 3. 5.
반응형


문제


풀이

array의 원소를 모두 0으로 초기화한 후,  for문과 arr[입력된 숫자]를 1로 저장했다.

결론적으로, arr[i] == 0이라면 출력되게 하였다.

 

array를 모두 0으로 초기화하려면,

int arr[31] = { 0, };	// array를 모두 0으로 초기화

 

 

만약, array를 0이 아닌 다른 수로 초기화하기 위해서는 <algorithm> 헤더 파일에 포함되어 있는 fill 또는 fill_n 함수를 사용하면 된다. 

 

  • fill(변경하려는 원소의 범위 시작주소, 종료주소, 변경 값)
  • fill_n(변경하려는 원소의 범위 시작주소, 원소의 개수, 변경 값)
std::fill(arr, arr + 31, -1)	// fill(변경하려는 원소의 범위 시작주소, 종료주소, 변경 값)

std::fill_n(arr, 31, -1)	// fill_n(변경하려는 원소의 범위 시작주소, 원소의 개수, 변경 값)

 


코드

#include <iostream>
#include<algorithm>
using namespace std;

int main() {
	int arr[31] = { 0, };	// array를 모두 0으로 초기화
	//fill_n(arr, 31, 0)	// 만약, 0이 아닌 다른 숫자로 모두 초기화하고 싶다면, fill_n 함수를 사용하자.
	int num;

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

	for (int i = 1; i <= 30; i++) {
		if (arr[i] == 0) {
			cout << i << "\n";
		}
	}

	return 0;
}

결과

 

 
 
 
반응형

댓글