백준 [10871] (C++)

2023. 5. 25. 17:40백준문제풀이

 

우선, 가장 기본적인 배열 선언후, 그배열에 값을 입력받는 방법과 

두번째로 DFS사용시 활용했던 벡터를 사용가능하다. 

 

 

1.첫번째 방법( 기본) 

 

#include <iostream>
using namespace std;
int main() {
    int n;
    int x;

    int a[1000]; // 배열의크기를 설정 후 입력받는다.
   
    cin >> n >> x;
   

    for (int i = 0; i < n; i++) {
   
        cin >> a[i];
    }

    for (int i = 0; i < n; i++) {
       
       
        if (a[i] < x)  cout << a[i] << " ";
   
    }


    return 0;
}

 

 

 

 

2. 두번째방법  (벡터활용)

 

#include<iostream>
#include<vector>
using namespace std;
int main() {

    int n;
    int x;
    cin >> n >> x;
    vector<int>a(n);    // 정수형 동적 배열선언 , n개의 요소를 가진  벡터 생성(동적배열)
                        //a[n] 은 정적 배열임

    for (int i = 0; i < n; i++) {//입력받은  n의 크기만큼  벡터로선언된 배열a에 입력

        cin >> a[i];
    }

    for (int i = 0; i < n; i++) { // n 의크기만큼 입력된 값이 x보다 작다면 공백과함께출력
        if (a[i] < x) {
            cout << a[i] << " ";
        }
    }






    return 0;
}

우선, 벡터 헤더를 포함하고,  배열을 벡터로 생성한다.     형태 :   vector<자료형>배열명(크기)

a배열의 값을 우리가 임의로 지정할 것이기 때문에  a[i] 로  입력을 받아주고 ( n만큼반복)  a[i] 를 출력 

 

배열인데 벡터에서는 " [] " 가아닌 " () " 를 사용하는이유:

 

a(n) 의 의미: n 개의 요소를 가진 vector 를 생성

 

vector는 동적 배열을 나타내는 자료구조로, 배열의 크기를 런타임 시에 동적으로 조정할 수 있다.

배열의 크기는 vector 객체를 생성할 때 인자로 전달하여 지정한다.


반면에 a[n]은 정적 배열을 의미 정적 배열은 컴파일 타임에 크기가 결정되는 배열로, 배열의 크기는 상수로 지정되어야 한다.   a[n]은 n개의 요소를 가진 정적 배열을 선언하라는 의미

따라서 동적 배열을 생성하기 위해서는  vector를 사용하여 a(n)과 같이 표현하고, 정적 배열을 생성하기 위해서는 a[n]과 같이 표현해야 한다.

 

 

 

'백준문제풀이' 카테고리의 다른 글

백준 [27866] (Java)  (0) 2023.05.28
백준 [10810] (java)  (0) 2023.05.25
백준 [2480] (C++)  (0) 2023.05.24
백준 [15649] , DFS(백트레킹) (Java)  (0) 2023.05.15
백준 [14502] dfs,벡터 알고리즘 (C++)  (0) 2023.05.10