Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#include <stdio.h>
#include <algorithm>
using namespace std;

int main()
{
int N;
int cnt[10] = {0, };

scanf("%d", &N);
while (N > 0)
{
cnt[N % 10]++;
N /= 10;
}

int ans = (cnt[6] + cnt[9] + 1) / 2;
for (int i = 0; i < 9; i++)
if (i != 6)
ans = max(ans, cnt[i]);

printf("%d\n", ans);
return 0;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
N = int(input())
cnt = [0]*10

while N > 0:
cnt[N%10] += 1
N //= 10

ans = (cnt[6] + cnt[9] + 1) // 2
for i in range(9):
if i != 6:
ans = max(ans, cnt[i])

print(ans)
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
int T;

scanf("%d", &T);
while (T--)
{
int N, M;
scanf("%d %d", &N, &M);

vector<int> a(N);
for (int i = 0; i < N; i++)
scanf("%d", &a[i]);

vector<int> b(M);
for (int i = 0; i < M; i++)
scanf("%d", &b[i]);

sort(a.begin(), a.end());
sort(b.begin(), b.end());

int ans = 0;
int bi = 0;
for (int i = 0; i < N; i++)
{
while (bi < M && b[bi] < a[i])
bi++;
ans += bi;
}
printf("%d\n", ans);
}
return 0;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
T = int(input())

for _ in range(T):
N, M = map(int, input().split())

a = list(map(int, input().split()))
b = list(map(int, input().split()))

a.sort()
b.sort()
Comment on lines +6 to +10
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이렇게 하는게 나으려나

Suggested change
a = list(map(int, input().split()))
b = list(map(int, input().split()))
a.sort()
b.sort()
a = sorted(list(map(int, input().split())))
b = sorted(list(map(int, input().split())))


ans = 0
bi = 0
for i in range(N):
while bi < M and b[bi] < a[i]:
bi += 1
ans += bi
print(ans)
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;

ll calc_need_amount(vector<int> &cost, vector<int> &budget, int assign_cnt)
{
ll need_amount = 0;
for (int i = 0; i < assign_cnt; i++)
need_amount += max(cost[i] - budget[budget.size() - assign_cnt + i], 0);
return need_amount;
}

int main()
{
int N, M, X;

scanf("%d %d %d", &N, &M, &X);

vector<int> cost(N);
for (int i = 0; i < N; i++)
scanf("%d", &cost[i]);

vector<int> budget(M);
for (int i = 0; i < M; i++)
scanf("%d", &budget[i]);

sort(cost.begin(), cost.end());
sort(budget.begin(), budget.end());

int l = 0, r = min(N, M), ans = 0;
while (l <= r)
{
int m = (l + r) / 2;
if (calc_need_amount(cost, budget, m) <= X)
{
ans = m;
l = m + 1;
}
else
r = m - 1;
}
printf("%d\n", ans);
return 0;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
def calc_need_amount(cost, budget, assign_cnt):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

사실 파이썬은 변수 선언부 뒤에 함수 선언해서 cost랑 budget를 인자로 안써도 되긴하는데 어떰?

need_amount = 0
for i in range(assign_cnt):
need_amount += max(cost[i] - budget[len(budget)-assign_cnt+i], 0)
return need_amount

N, M, X = map(int, input().split())

cost = list(map(int, input().split()))
budget = list(map(int, input().split()))

cost.sort()
budget.sort()
Comment on lines +9 to +13
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
cost = list(map(int, input().split()))
budget = list(map(int, input().split()))
cost.sort()
budget.sort()
cost = sorted(list(map(int, input().split())))
budget = sorted(list(map(int, input().split())))


l, r, ans = 0, min(N, M), 0
while l <= r:
m = (l + r) // 2
if calc_need_amount(cost, budget, m) <= X:
ans = m
l = m + 1
else:
r = m - 1

print(ans)