int main(){
freopen("input.txt","rt",stdin);
int n,m,k;
cin>>n;
vector<int> p1;
for(int i=0; i<n; i++){
cin>>k;
p1.push_back(k);
}
sort(p1.begin(),p1.end());
cin>>m;
vector<int> p2;
for(int i=0; i<m; i++){
cin>>k;
p2.push_back(k);
}
sort(p2.begin(),p2.end());
int i=0, j=0;
while(i<n && j<m){
if(p1[i]==p2[j]){
cout<<p1[i]<<' ';
i++;
j++;
}
else if(p1[i]<p2[j])
i++;
else
j++;
}
return 0;
}
투포인터
sort 함수는 퀵정렬을 사용하는데, 생각보다 성능이 좋은 듯 하다.
int main(){
//freopen("input.txt","rt",stdin);
int n;
cin>>n;
int cnt;
for(int i=2; i<n; i++){
int sum=n;
for(int j=1; j<=i; j++){
sum-=j;
}
if(sum<0) break;
if(sum%i==0){
int k=sum/i;
cout<<k+1;
for(int j=2; j<=i; j++){
cout<<" +"<<j+k;
}
cout<<" = "<<n<<endl;
cnt++;
}
}
cout<<cnt;
return 0;
}
강의를 보면 내 코드의 for문 2개를 while문 1개로 대체해버리는데, n값을 tmp에 넣고 계속 업데이트해가면서 이용하면 더 효율적으로 코드작성이 가능해진다.