Skip to content

Commit 1e2fcd7

Browse files
committed
2026년 03월 30일 13:33:55
1 parent 1b132e4 commit 1e2fcd7

File tree

2 files changed

+60
-0
lines changed

2 files changed

+60
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# [1150] 먹을 것인가 먹힐 것인가
2+
### 채점 결과
3+
Accepted
4+
### 제출 일자
5+
2026년 03월 30일 13:33:55
6+
### 성능 요약[추후 구현 예정]
7+
- 메모리: N/A KB
8+
- 시간: N/A ms
9+
---
10+
### 문제 링크
11+
https://code.pusan.ac.kr/problem/1150
12+
### 난이도
13+
어려움
14+
### 문제 설명
15+
심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다.A는 자기보다 크기가 작은 먹이만 먹을 수 있다.예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에A가 B를 먹을 수 있는 쌍의 개수는 7가지가 있다. 8-3, 8-6, 8-1, 7-3, 7-6, 7-1, 3-1.두 생명체 A와 B의 크기가 주어졌을 때, A의 크기가 B보다 큰 쌍이 몇 개나 있는지 구하는 프로그램을 작성하시오.
16+
### 입력
17+
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 A의 수 N과 B의 수 M이 주어진다.둘째 줄에는 A의 크기가 모두 주어지며, 셋째 줄에는 B의 크기가 모두 주어진다. 크기는 양의 정수이다. (1 ≤ N, M ≤ 20,000)
18+
### 출력
19+
각 테스트 케이스마다, A가 B보다 큰 쌍의 개수를 출력한다.
20+
### 예제 입력/출력
21+
**예제 입력 1**
22+
```
23+
2
24+
5 3
25+
8 1 7 3 1
26+
3 6 1
27+
3 4
28+
2 13 7
29+
103 11 290 215
30+
```
31+
**예제 출력 1**
32+
```
33+
7
34+
1
35+
```
36+
### 제약 사항
37+
- 시간 제한 1000ms
38+
- 메모리 제한 256mb
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
T = int(input())
2+
for _ in range(T):
3+
N, M = map(int, input().split())
4+
A = list(map(int, input().split()))
5+
B = list(map(int, input().split()))
6+
A.sort()
7+
B.sort()
8+
cnt = 0
9+
10+
for a_val in A:
11+
left, right, temp = 0, M - 1, 0
12+
while left <= right:
13+
mid = (left + right) // 2
14+
15+
if B[mid] < a_val:
16+
temp = mid + 1
17+
left = mid + 1
18+
else:
19+
right = mid - 1
20+
21+
cnt += temp
22+
print(cnt)

0 commit comments

Comments
 (0)