2311. 주차공간
더보기
#include <iostream>
#define MAX 100
using namespace std;
int main(){
int n,a,b,ma=0,mb=0;
bool A[MAX+1]={};
bool B[MAX+1]={};
cin >> n >> a >> b;
for (int i=1;i<=a;i++){
int x;
cin >> x;
A[x]=1;
}
for (int i=1;i<=b;i++){
int x;
cin >> x;
B[x]=1;
}
for (int i=1;i<=n;i++){
if (A[i] && B[i]){
mb++;
}
else if (!A[i] && !B[i]){
ma++;
}
}
cout << ma << ' ' << mb;
return 0;
}
주차장의 자리 n, 첫째 날 자동차의 수 a, 둘째 날 자동차의 수 b를 입력받고 x를 입력받아 배열 A, 배열 B의 x인덱스에 1을 넣는다. 그리고 1부터 n까지 A배열과 B배열을 보고 둘 다 0이거나 둘 다 1일 때 ma와 mb를 1씩 더하고 출력한다.
2314. 한라봉 포장
더보기
#include <iostream>
#define MAX 3
using namespace std;
int main(){
int n,m=0;
int A[MAX+1]={1,3,5,10};
cin >> n;
for (int i=MAX;i>=0;i--){
m+=n/A[i];
n%=A[i];
}
cout << m;
return 0;
}
A배열에 1,3,5,10을 넣고 n을 입력받은후 m에 A[i] 크기의 박스의 개수만큼을 더하고 n에서 뺀다.
2316. 약수 배수 놀이
더보기
#include <iostream>
#define MAX 10000000
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n,m;
int A[MAX+1]={};
cin >> n >> m;
for (int i=2;i<=m;i++){
for (int j=i*2;j<=m;j+=i){
A[j]++;
}
A[i]+=2;
}
while(n--){
int a;
cin >> a;
if (a==1) cout << m << "\n";
else cout << A[a]+m/a-1 << "\n";
}
return 0;
}
A배열을 n의 최댓값인 1000만 크기의 int형 배열을 선언한다. 그리고 n과 m을 받아서 1부터 m까지 에라토스테네스의 체를 활용해서 약수의 개수를 A배열에 추가한다. 그리고 a를 입력받아 약수의 개수인 A[a]와 배수의 개수인 m/a를 더하고 겹치는 a를 빼서 A[a]+m/a-1을 식으로 계산한다.
2318. 산딸기 정렬
더보기
#include <iostream>
#define MAX 1000000
using namespace std;
int main(){
int n,m;
int A[MAX+1]={};
cin >> n;
for (int i=1;i<=n;i++){
cin >> A[i];
}
cin >> m;
for (int i=1;i<=n;i++){
if (A[i]<m) cout << A[i] << ' ';
}
for (int i=1;i<=n;i++){
if (A[i]==m) cout << A[i] << ' ';
}
for (int i=1;i<=n;i++){
if (A[i]>m) cout << A[i] << ' ';
}
return 0;
}
A배열의 개수 n과 A배열 m을 입력받고 A배열을 3번 돌면서 m보다 작으면 출력, m과 같은면 출력, m보다 크면 출력하면 된다.
2320. 감귤 나무 관리
더보기
#include <iostream>
#include <cmath>
using namespace std;
int main(){
long x1,x2,y1,y2,r;
cin >> x1 >> y1 >> r >> x2 >> y2;
if (pow(x1-x2,2)+pow(y1-y2,2)>r*r) cout << "out";
else if (pow(x1-x2,2)+pow(y1-y2,2)==r*r) cout << "on";
else if (pow(x1-x2,2)+pow(y1-y2,2)<r*r) cout << "in";
return 0;
}
x1,y1,r,x2,y2를 입력받고 두 점 사이의 거리 공식을 사용해서 구한다.
'Algorithm > CodeUP' 카테고리의 다른 글
2023 SFPC 전북 PRE UPSOLVING (0) | 2024.01.18 |
---|---|
2023 SFPC@전북 공부하기 2일차 + 3일차 (0) | 2024.01.17 |
2023 SFPC@전북 공부하기 1일차 (1) | 2024.01.16 |