[๋ฌธ์ ๋งํฌ] ๐
SW Expert Academy
SW ํ๋ก๊ทธ๋๋ฐ ์ญ๋ ๊ฐํ์ ๋์์ด ๋๋ ๋ค์ํ ํ์ต ์ปจํ ์ธ ๋ฅผ ํ์ธํ์ธ์!
swexpertacademy.com
ํ์ด ๋ฐฉ๋ฒ
๐ก ์ ์ ์ด ๊ต์ฐจํ๋ ค๋ฉด ์๋ก ๋ค๋ฅธ ๋ ์ ์ (x, y)์ (i, j)์ ๋ํด, ๋ค์ ์กฐ๊ฑด์ด ์ฑ๋ฆฝํด์ผ ํ๋ค.
- x < i ์ด๋ฉด์ y > j (์ผ์ชฝ ๋์ ์ ๋ ์ผ์ชฝ์ ์์ง๋ง, ์ค๋ฅธ์ชฝ ๋์ ์ ๋ ์๋์ชฝ์ ์์)
- ๋๋ x > i ์ด๋ฉด์ y < j (์ผ์ชฝ ๋์ ์ ๋ ์ค๋ฅธ์ชฝ์ ์์ง๋ง, ์ค๋ฅธ์ชฝ ๋์ ์ ๋ ์์ชฝ์ ์์)
์ ๋ ฅ ๋ฐ๊ธฐ
- ๊ฐ ์ ์ ์ (A, B) ์ขํ๋ฅผ ๋ฆฌ์คํธ a, b์ ๊ฐ๊ฐ ์ ์ฅํ๋ค.
๊ต์ฐจ ์กฐ๊ฑด ์ฒดํฌ
- ๊ฐ ์ ์ (x, y)์ ๋ค๋ฅธ ์ ์ (i, j)์ ์ขํ๋ฅผ ๋น๊ตํ์ฌ, ๊ต์ฐจ ์กฐ๊ฑด์ด ์ฑ๋ฆฝํ๋์ง ํ์ธํ๋ค.
- ๊ต์ฐจ ์กฐ๊ฑด์ด ์ฑ๋ฆฝํ ๋๋ง๋ค result ๊ฐ์ ์ฆ๊ฐ์ํจ๋ค.
์ถ๋ ฅํ๊ธฐ
- ๊ฐ ํ ์คํธ ์ผ์ด์ค์ ๋ํ result ๊ฐ์ ์ถ๋ ฅํ๋ค.
Solution
T = int(input()) # ํ
์คํธ ์ผ์ด์ค ์
for test_case in range(1, T + 1):
N = int(input()) # ์ ์ ๊ฐ์
a, b = [], []
for _ in range(N):
A, B = map(int, input().split())
a.append(A)
b.append(B)
result = 0
for x, y in zip(a, b):
for i, j in zip(a, b):
if x < i and j < y:
result += 1
print(f"#{test_case} {result}")
๊ฐ์ ํ ์
์ ์ฝ๋๋ O(N^2) ๋ณต์ก๋๋ก ๋ชจ๋ ์ ์ ์์ ๋น๊ตํ๊ณ ์๋ค. ์ ๋ ฅ์ด ์ปค์ง ๊ฒฝ์ฐ ์ด ๋ฐฉ์์ ์๊ฐ ์ด๊ณผ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฏ๋ก, ํจ์จ์ ์ธ ์ ๋ ฌ์ด๋ ์ค์ํ ๊ธฐ๋ฒ์ ๊ณ ๋ คํด๋ณผ ์ ์๋ค.
๊ต์ฐจ ์ ์ ๋ฌธ์ ๋ฅผ ํจ์จ์ ์ผ๋ก ํด๊ฒฐํ๊ธฐ ์ํด, ์ ์ ์ ์์์ A์ ๋ํด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ํ, ๋์ B์ ๋ํด ์ญ์์ผ๋ก ์ ๋ ฌํ๋ฉด์ ๊ต์ฐจ๋ฅผ ํ์ธํ ์ ์๋ค. ์ด ๋ฐฉ๋ฒ์ A๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ์ํํด ์์๋ฅผ ๊ณ ์ ํ๊ณ , ์ดํ์ B ๊ฐ์ ๋น๊ตํ๋ฉด์ ์ ์ ์ ๋น๊ตํ๋ ๊ฒ์ผ๋ก, ์ค๋ณต๋ ๋น๊ต๋ฅผ ์ค์ฌ ํจ์จ์ ๋์ผ ์ ์๋ค.
- ์ ์ ์ ๋ ฌ
- ์ ์ ์ ์์์ A์ ๋ํด ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ฐ์ ์์์์ ์์ํ๋ ์ ์ ๋ค์ด ํ ๋ฒ๋ง ๊ณ์ฐ๋๋๋ก ๋ง๋ค ์ ์๋ค.
- ๋์ ๋ฆฌ์คํธ ๊ด๋ฆฌ
- ๋์ B๋ ์๋ก์ด ๋์ ์ ๊ณ์ ์ถ๊ฐํด๊ฐ๋ฉฐ ๊ต์ฐจ ์๋ฅผ ๊ณ์ฐํ๋ค.
- ๊ต์ฐจ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋๋ฉด result๋ฅผ ์ฆ๊ฐ์ํจ๋ค.
๊ฐ์ ๋ ์ฝ๋
T = int(input()) # ํ
์คํธ ์ผ์ด์ค ์
for test_case in range(1, T + 1):
N = int(input()) # ์ ์ ๊ฐ์
wires = []
for _ in range(N): # ์ ์ ์
๋ ฅ ๋ฐ๊ธฐ
A, B = map(int, input().split())
wires.append((A, B))
wires.sort() # ์์์ A ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
result = 0
ends = []
for _, B in wires: # ๋์ B ๋น๊ต๋ฅผ ์ํ ๋ฆฌ์คํธ
# ํ์ฌ ๋์ ๋ณด๋ค ํฐ ๋์ ์ค ์ค๋ฅธ์ชฝ์ ์๋ ๋์ ์ ์ฐพ์ ๊ต์ฐจ ์ ํ์ธ
result += sum(1 for end in ends if end > B)
ends.append(B) # ๋์ ๋ฆฌ์คํธ์ ์ถ๊ฐ
print(f"#{test_case} {result}")
'๐งฉ Algorithm > SWEA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [SWEA] 3260. ๋ ์์ ๋ง์ (Python/D3) (1) | 2024.11.14 |
|---|---|
| [SWEA] 1873. ์ํธ์ ๋ฐฐํํ๋ (Python/D3) (2) | 2024.11.13 |
| [SWEA] 6485. ์ผ์ฑ์์ ๋ฒ์ค ๋ ธ์ (Python/D3) (2) | 2024.11.13 |
| [SWEA] 5789. ํ์ฃผ์ ์์ ๋ฐ๊พธ๊ธฐ (Python/D3) (1) | 2024.11.13 |
| [SWEA] 1940. ๊ฐ๋! RC์นด! (Python/D2) (0) | 2024.11.10 |