[๋ฌธ์ ๋งํฌ] ๐
SW Expert Academy
SW ํ๋ก๊ทธ๋๋ฐ ์ญ๋ ๊ฐํ์ ๋์์ด ๋๋ ๋ค์ํ ํ์ต ์ปจํ ์ธ ๋ฅผ ํ์ธํ์ธ์!
swexpertacademy.com
ํ์ด
์ ๋ ฅ ๋ฐ์ดํฐ ํ์ฑ
- ๋ช ๋ น์ด๋ฅผ "I" ๊ตฌ๋ถ์๋ก ๋๋์ด ์ ์ฅํ๋ค.
๋ช ๋ น์ด ์ฒ๋ฆฌ
- ๊ฐ ๋ช ๋ น์ด๋ฅผ ๋ค์ ๋ฆฌ์คํธ๋ก ๋ฐ๋ก ์ ์ฅํ๊ณ , ์ด๋ฅผ ํตํด ์ฝ์ ์์น, ์ฝ์ ํ ๊ฐ์ ๊ฐ์, ๊ทธ๋ฆฌ๊ณ ์ฝ์ ํ ๊ฐ๋ค์ ๊ตฌ๋ถํ๋ค.
- ๋น ๋ช ๋ น์ด๋ ์๋ตํ๊ณ , ๊ฐ ๋ช ๋ น์ด์์ ์์น์ ๊ฐ์ ์ถ์ถํด ๊ธฐ์กด ๋ฆฌ์คํธ์ ์ฝ์ ํ๋ค.
์ฝ์ ์คํ
- ๊ธฐ์กด ๋ฆฌ์คํธ์ ์ฃผ์ด์ง ์์น์ ๊ฐ์ ์ฐจ๋ก๋ก ์ฝ์ ํ๋ค.
- ์์น๋ฅผ ์ ๊ด๋ฆฌํ์ฌ, ์ฝ์ ํ ๋๋ง๋ค ์๋ณธ ๋ฆฌ์คํธ์ ์์น๊ฐ ๋ณ๋๋๋ ์ ์ ์ ์ํ๋ค.
์ถ๋ ฅ
- ๊ธฐ์กด ๋ฆฌ์คํธ์ ์ 10๊ฐ ๊ฐ์ result๋ก ์ถ๋ ฅํ๋ค.
Solution
for test_case in range(1, 11):
_ = int(input())
origin = list(map(int, input().split()))
_ = int(input())
command = list(map(str, input().split("I"))) # I ๊ตฌ๋ถ์ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฆฌํ์ฌ ์ ์ฅ
for i in command:
command_list = list(map(int, i.split())) # ๋ช
๋ น์ด๋ฅผ ํ ์ค์ฉ ๊บผ๋ด์ ๋ค์ ๋ฐ๋ก ์ ์ฅ
if len(command_list) == 0: # ์ฒซ ๋ฒ์งธ ๋ฆฌ์คํธ๋ ๋น์ด์๊ธฐ ๋๋ฌธ์ ๋ฌด์ํ๋ ์ฝ๋ ์์ฑ
continue
for j in range(command_list[1]):
origin.insert(command_list[0] + j, command_list[j + 2]) # ์ํ๋ ์์น i ์์ ์ถ๊ฐํ ๊ฐ x๋ฅผ ์ฝ์
result = origin[:10] # 10๋ฒ์งธ๊น์ง๋ง ์ถ๋ ฅ
print(f"#{test_case} {' '.join(map(str, result))}")
๊ฐ์ ํ ๋ถ๋ถ
- ๋ถํ์ํ ์กฐ๊ฑด๋ฌธ ์ ๊ฑฐ
- command_list๊ฐ ๋น์ด ์๋์ง ํ์ธํ๋ ์กฐ๊ฑด์ด ์์ง๋ง, split("I")๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฒ์ ์์๋ง ๋น ๋ฆฌ์คํธ๊ฐ ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค. ์ด ๋ถ๋ถ์ ์ฌ๋ผ์ด์ฑ์ ํตํด command[1:]๋ก ์ ๊ทผํ๋ฉด ์ฒซ ๋ฒ์งธ ๋น ์์๋ฅผ ๋ฌด์ํ ์ ์๋ค.
- ๋ช
๋ น์ด ์ฒ๋ฆฌ ์ต์ ํ
- origin.insert()๋ ๋งค๋ฒ ๋ฆฌ์คํธ๋ฅผ ์ด๋์ํค๋ฏ๋ก, ๋ฐ๋ณต์ ์ผ๋ก ํธ์ถํ๋ฉด ์ฑ๋ฅ ์ ํ๊ฐ ์๊ธธ ์ ์๋ค. ๋ฐ๋ผ์, ์ฝ์ ๋ช ๋ น์ด๋ฅผ ๋ฏธ๋ฆฌ ํ ๋ฒ์ ๊ณ์ฐํด origin์ ์ถ๊ฐํ๋ ๊ฒ์ด ํจ์จ์ ์ด๋ค.
- ๋ฐ์ดํฐ ๊ฐ๊ณต ์ต์ ํ
- command์์ ๊ฐ ๋ช ๋ น์ ๋ฏธ๋ฆฌ ๋๋๊ณ ๊ฐ ๋ถ๋ถ์ ๋ํด ํ์ํ ์ฒ๋ฆฌ๋ฅผ ํ๋๋ก ํ๋ฉด ์ฝ๋๊ฐ ๋ ๊ฐ๊ฒฐํด์ง๋ค.
์ต์ ํ๋ ์ฝ๋
for test_case in range(1, 11):
_ = int(input())
origin = list(map(int, input().split()))
_ = int(input())
command = input().split("I")[1:] # ์ฒซ ๋ฒ์งธ ๋น ์์๋ฅผ ์ ๊ฑฐํ๊ณ ์์
for i in command:
command_list = list(map(int, i.split()))
insert_position = command_list[0]
num_to_insert = command_list[2:]
# ํด๋น ์์น์ ๋ช
๋ น์ด๋๋ก ๊ฐ ์ฝ์
origin[insert_position:insert_position] = num_to_insert
# 10๋ฒ์งธ๊น์ง๋ง ์ถ๋ ฅ
result = origin[:10]
print(f"#{test_case} {' '.join(map(str, result))}")
๐ฉ๐ป ํ๊ณ
์ค์ํ ๋ถ๋ถ
for j in range(command_list[1]):
origin.insert(origin[command_list[0] + j], command_list[j + 2])
์ฒ์์ ์ด๋ ๊ฒ ํ๋๋ฐ ์ํ๋ ๊ฐ์ด ์ ๋์ค๊ธธ๋ for ๋ฌธ ๋๋ฆฌ๋ฉด์ ์ผ์ผ์ด ์ถ๋ ฅํด๋ดค๋๋ฐ ๊ณ์ orgin ๋งจ ๋ค์ ๊ฐ์ด ์ถ๊ฐ๋์๋ค. ๋ค์ ํ์ธํด๋ณด๋ origin[command_list[0] + j]์์ ๋ฆฌ์คํธ ๊ฐ origin[command_list[0] + j]๋ฅผ ์ธ๋ฑ์ค๋ก ๋ฃ๊ณ ์์๋ค. ์ด ๋๋ฌธ์ insert()๊ฐ ์ฐธ์กฐํ ๊ฐ์ ์์น์ ์ถ๊ฐํ์ง ์๊ณ , ๋งจ ๋์ ์ถ๊ฐ๋ ๊ฒ์ด์๋ค. ๊ทธ๋์ ํด๋น ์์น ์ธ๋ฑ์ค๋ง ์ ๋ฌํ๋๋ก ์์ ํ๋ค.
์ด๋ฏธ origin์ insert() ๋ฅผ ํ๊ณ ์๋๋ฐ ๋ origin ๋ฆฌ์คํธ์ ์ธ๋ฑ์ค์ ์ถ๊ฐํ๋ ์ค์ฒฉ์ด ๋ผ์ ๋งจ ๋ค์ ๊ฐ์ด ์ถ๊ฐ๋ ๊ฒ ๊ฐ๋ค.
์ด๊ฒ ๋๋ฌธ์ ๊ณ์ ํ ์คํธ ํด๋ณด๋๋ผ ์๊ฐ์ ๋ง์ด ์ผ๋ค. ๋ถ๋ช ๋ง๊ฒ ์ผ๋๋ฐ ์๊พธ๋ง ๋งจ ๋ค์๋ง ์ถ๊ฐ ๋๋ ๋ฏธ์น ๋ป ํ๋ค...
์๋ก ์๊ฒ ๋ ์
join() ์ ์ฌ์ฉํ ๋ ์ ์ ๋ฆฌ์คํธ๋ ์ ๋๋ค. ์ ์ ๋ฆฌ์คํธ์ ๋ํด join() ์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ฉด TypeError ๊ฐ ๋ฐ์ํ๋ค. ๊ทธ๋์ ์ ์ํ ๋ฆฌ์คํธ๋ฅผ join() ํ๋ ค๋ฉด ๋ฆฌ์คํธ์ ์์๋ฅผ ๋ชจ๋ ๋ฌธ์์ด๋ก ๋ณํํ ํ ์ฌ์ฉํด์ผ ํ๋ค.
'๐งฉ Algorithm > SWEA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [SWEA] 13547. ํ์จ๋ฆ (Python/D3) (0) | 2024.10.30 |
|---|---|
| [SWEA] 1229. [S/W ๋ฌธ์ ํด๊ฒฐ ๊ธฐ๋ณธ] 8์ผ์ฐจ - ์ํธ๋ฌธ2 (Python/D3) (0) | 2024.10.30 |
| [SWEA] 5356. ์์์ด์ ์ธ๋ก๋ก ๋งํด์ (Python/D3) (1) | 2024.10.29 |
| [SWEA] 11736. ํ๋ฒํ ์ซ์ (Python/D3) (0) | 2024.10.29 |
| [SWEA] 3499. ํผํํธ ์ ํ (Python/D3) (0) | 2024.10.29 |