반응형
문제
풀이
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;
}
결과
반응형
'Programming > C++ - 백준' 카테고리의 다른 글
[백준] 2798번 : 블랙잭 (C++) (0) | 2024.03.10 |
---|---|
[백준] 2869번 : 달팽이는 올라가고 싶다 (C++) (0) | 2024.03.07 |
[백준] 7568번 : 덩치 (C++) + pair 클래스 (0) | 2024.03.03 |
[백준] 1978번 : 소수 찾기 (C++) (0) | 2024.02.21 |
[백준] 2751번 : 수 정렬하기 2 (C++) + 시간초과 & 런타임 에러(OutofBounds) 해결 (1) | 2024.02.21 |
댓글