알고리즘 연습/코드업
[C++][기초-배열]1093~1099 , vector,stack,2차원 vector 초기화
_h.j
2020. 9. 4. 17:42
728x90
[1093] vector 사용
#include <bits/stdc++.h>
using namespace std;
int main(){
int cnt,num;
vector<int> snum(23);
cin>>cnt;
for(int i = 0 ; i < cnt ; i++){
cin>>num;
snum[num-1]++;
}
for(int elem : snum) cout<<elem<<" ";
return 0;
}
[1094] stack이용
#include <bits/stdc++.h>
using namespace std;
int main(){
int cnt,num;
stack<int> snum;
cin>>cnt;
for(int i = 0 ; i < cnt ; i++){
cin>>num;
snum.push(num);
}
while(!snum.empty()){
cout<< snum.top() <<" ";
snum.pop();
}
return 0;
}
[1095]
#include <bits/stdc++.h>
using namespace std;
int main(){
int cnt,num,min=23;
cin>>cnt;
for(int i = 0 ; i < cnt ; i++){
cin>>num;
if(num<min) min = num;
}
cout<<min;
return 0;
}
[1096]
#include <bits/stdc++.h>
using namespace std;
int main(){
int n ,x,y;
vector< vector<int>> b;//(19,(19,0));
b.assign(19,vector<int> (19,0) );
cin>> n;
for(int i = 0 ; i < n ; i++){
cin>>x>>y;
b[x-1][y-1] = 1 ;
}
for(int j = 0 ; j < 19 ;j++){
for(int i = 0 ; i < 19 ; i++)
cout<< b[j][i]<<" ";
cout<<"\n";
}
return 0;
}
x,y 입력이 바뀐거 같긴하지만 뭐 아무튼
이차원 vector 동적 초기화 방법
vector <vector<int>> v(10,(10,0)); //오류남
위의 방법으로 하면 오류가 난다.
n*n 사이즈 vector
//첫 번째 방법
vector<vector<int>> v1;
v1.assign(n , vector<int> (n,0)); //n*n vector
//두 번째 방법
vector<vector<int>> v2;
for(int i = 0 ; i < n ; i++){
vector<int> element(n); //n개 짜리 1차 vector
v2.psuh_back(element);
}
두 번째 방법 활용해 행과 열 개수 다른 vector도 생성 가능
[1099] 성실한 개미
#include <bits/stdc++.h>
using namespace std;
int main(){
int n ,tmp;
vector< vector<int>> v;
v.assign(10,vector<int> (10,0) );
for(int j = 0; j <10; j++){
for(int i = 0 ; i < 10 ; i++){
cin >> tmp;
v[j][i] = tmp;
}
}
int x=1,y=1;
while(x<=8 && y <=8){
if( v[y][x] ==2){
v[y][x] = 9;
break;
}
v[y][x] = 9;
if(v[y][x+1] != 1){
x++;
}
else{ //오른쪽 막힘
if(v[y+1][x] != 1)
y++;
else break;
}
}
for(int j = 0; j <10; j++){
for(int i = 0 ; i < 10 ; i++){
cout<<v[j][i]<<" ";
}
cout<<"\n";
}
return 0;
}
728x90