[๋ฌธ์ ๋งํฌ] ๐
SW Expert Academy
SW ํ๋ก๊ทธ๋๋ฐ ์ญ๋ ๊ฐํ์ ๋์์ด ๋๋ ๋ค์ํ ํ์ต ์ปจํ ์ธ ๋ฅผ ํ์ธํ์ธ์!
swexpertacademy.com
ํ์ด ๋ฐฉ๋ฒ.
- ์์ ๋ฆฌ์คํธ ์ด๊ธฐํ
- ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค ํฌ๊ธฐ๊ฐ N์ธ ๋ฆฌ์คํธ box๋ฅผ 0์ผ๋ก ์ด๊ธฐํํ์ฌ ๋ง๋ ๋ค. ์ด ๋ฆฌ์คํธ๋ ๊ฐ ๊ตฌ๊ฐ์ ๊ฐ์ ์ ์ฅํ๋ ์ญํ ์ ํ๋ค.
- ๊ตฌ๊ฐ์ ๊ฐ ํ ๋น
- Q๊ฐ์ ๊ตฌ๊ฐ ์ ๋ ฅ์ ๋ฐ๋ณตํด์ ์ฒ๋ฆฌํ๋ค.
- ๊ฐ ๊ตฌ๊ฐ์ ๋ํด L๋ถํฐ R๊น์ง ๋ฐ๋ณต๋ฌธ์ ๋๋ฉฐ, ํ์ฌ ๊ตฌ๊ฐ ๋ฒํธ i ๋ก ๋ฆฌ์คํธ์ ํด๋น ๊ตฌ๊ฐ ์์๋ค์ ์ ๋ฐ์ดํธํ๋ค.
- ๊ฒฐ๊ณผ ์ถ๋ ฅ
- ๋ฆฌ์คํธ box์ ๊ฐ๋ค์ ๋ฌธ์์ด๋ก ๋ณํํด ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํ์ฌ ์ถ๋ ฅํ๋ค.
Solution
T = int(input()) # ํ
์คํธ ์ผ์ด์ค ์
for test_case in range(1, T + 1):
N, Q = map(int, input().split())
box = [0]*N # ๋ฐ์ค ๋ฆฌ์คํธ ์์ฑ ํ ๋ชจ๋ 0์ผ๋ก ์ด๊ธฐํ
for i in range(1, Q + 1):
L, R = map(int, input().split())
for l in range(L - 1, R):
box[l] = i
print(f"#{test_case} {' '.join(map(str, box))}")
๊ฐ์ ํ ์
ํด๋น ์ฝ๋์์ ํจ์จ์ฑ ์ธก๋ฉด์์ ํฌ๊ฒ ๊ฐ์ ํ ์ฌ์ง๋ ์๋ค. ์ง๊ธ ์์ฑ๋ ์ฝ๋์ ๋ก์ง์ ํ ์คํธ ์ผ์ด์ค๋ง๋ค box ๋ฆฌ์คํธ๋ฅผ ๋ฏธ๋ฆฌ ์ด๊ธฐํํ๊ณ , ๊ฐ ๊ตฌ๊ฐ์ ๋ฐ๋ณตํ๋ฉด์ ๊ฐ๋ค์ ํ ๋นํ๋ ๋ฐฉ์์ผ๋ก ํ์ํ ์์ ์ ํจ์จ์ ์ผ๋ก ์ํํ๊ณ ์๋ค.
ํ์ง๋ง, ๋ฆฌ์คํธ ํ ๋น ๋ฒ์๋ฅผ ์กฐ๊ธ ์ค์ด๋ ๋ฐฉ๋ฒ ์ ๋๋ ๊ณ ๋ คํด๋ณผ ์ ์๋ค. ํ์ง๋ง O(N * Q) ๋ณต์ก๋๋ ๋ณธ์ง์ ์ผ๋ก ๋ฐ๋์ง ์์ผ๋ฏ๋ก, ์ฝ๋ ์ต์ ํ์ ์ด์ ์ ํฌ์ง ์์ ์ ์๋ค.
- box[l:R] ์ฌ๋ผ์ด์ฑ ํ ๋น ์ฌ์ฉ : for๋ฌธ ๋์ ์ฌ๋ผ์ด์ฑ ํ ๋น์ ์ฌ์ฉํด ๊ตฌ๊ฐ์ ํ ๋นํ ์ ์๋ค.
๊ฐ์ ๋ ์ฝ๋
T = int(input()) # ํ
์คํธ ์ผ์ด์ค ์
for test_case in range(1, T + 1):
N, Q = map(int, input().split())
box = [0] * N
for i in range(1, Q + 1):
L, R = map(int, input().split())
box[L - 1:R] = [i] * (R - L + 1)
print(f"#{test_case} {' '.join(map(str, box))}")
'๐งฉ Algorithm > SWEA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [SWEA] 10580. ์ ๋ด๋ (Python/D3) (1) | 2024.11.13 |
|---|---|
| [SWEA] 6485. ์ผ์ฑ์์ ๋ฒ์ค ๋ ธ์ (Python/D3) (2) | 2024.11.13 |
| [SWEA] 1940. ๊ฐ๋! RC์นด! (Python/D2) (0) | 2024.11.10 |
| [SWEA] 2005. ํ์ค์นผ์ ์ผ๊ฐํ (Python/D2) (0) | 2024.11.10 |
| [SWEA] 20551. ์ฆ๊ฐํ๋ ์ฌํ ์์ด (Python/D3) (0) | 2024.11.08 |