백준 [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 |