[๋ฌธ์ ๋งํฌ] ๐
SW Expert Academy
SW ํ๋ก๊ทธ๋๋ฐ ์ญ๋ ๊ฐํ์ ๋์์ด ๋๋ ๋ค์ํ ํ์ต ์ปจํ ์ธ ๋ฅผ ํ์ธํ์ธ์!
swexpertacademy.com
ํ์ด
๐ก๋์ ๋๋ฆฌ์ ์ ๋ ฌ ์ฌ์ฉ
๊ฐ ๋จ์ด์ ์์๋ฅผ ๋งคํํ๋ ๋์ ๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ , ์ฃผ์ด์ง ๋ฌธ์์ด์ ๊ฐ ๋จ์ด๋ฅผ ์ด ์์์ ๋ฐ๋ผ ์ ๋ ฌํ๋ค.
ํ์ด ๋ฐฉ๋ฒ
- ํ์ฑ์ ์ซ์ ๋จ์ด๋ค์ ๋ฆฌ์คํธ๋ก ์ ์ํ๊ณ , ์ด๋ฅผ ์ด์ฉํด ์์ ๋์ ๋๋ฆฌ๋ฅผ ๋ง๋ ๋ค.
- ์ ๋ ฅ ๋ฌธ์์ด์ ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๋ถํ ํ์ฌ ๊ฐ ์ซ์ ๋จ์ด๋ฅผ ์ถ์ถํ๋ค.
- ๊ฐ ๋จ์ด๋ฅผ ๋์ ๋๋ฆฌ ์์์ ๋ง์ถฐ ์ ๋ ฌํ๋ค.
- ์ ๋ ฌ๋ ๊ฒฐ๊ณผ๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ์ฐ๊ฒฐํ์ฌ ์ถ๋ ฅํ๋ค.
โ ๋์ ๋๋ฆฌ ์์
planet_nums = ["ZRO", "ONE", "TWO", "THR", "FOR", "FIV", "SIX", "SVN", "EGT", "NIN"]
planet_dict = dict(zip(planet_nums, range(len(planet_nums)))) # list to dict
print(planet_dict)
์ถ๋ ฅ ๊ฒฐ๊ณผ
{'ZRO': 0, 'ONE': 1, 'TWO': 2, 'THR': 3, 'FOR': 4, 'FIV': 5, 'SIX': 6, 'SVN': 7, 'EGT': 8, 'NIN': 9}
- planet_nums ๋ฆฌ์คํธ
- ๊ฐ ์ซ์๋ฅผ ํํํ๋ ๋ฌธ์์ด์ 0์์ 9๊น์ง ์์๋๋ก ๋์ดํ ๋ฆฌ์คํธ์ด๋ค.
- dict(zip(planet_nums, range(len(planet_nums))))
- planet_nums ์ ๊ฐ ์์๋ฅผ ํค๋ก, range(len(planet_nums)) ์์ ์์ฑ๋ ๊ฐ ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ผ๋ก ํ์ฌ planet_dict ๋์ ๋๋ฆฌ๋ฅผ ๋ง๋ ๋ค.
- ์ด๋ก ์ธํด ๊ฐ ๋ฌธ์์ด์ด ๊ทธ์ ํด๋นํ๋ ์ซ์ ๊ฐ์ผ๋ก ๋งคํ๋๋ค.
[๋์ ๋๋ฆฌ ์ฌ์ฉ ๋ฐฉ๋ฒ] ๐ https://dev-cloud.tistory.com/344
Solution
sol.1 (54,504 kb / 237 ms)
T = int(input())
for test_case in range(1, T + 1):
tc, tc_len = map(str, input().split())
nums = list(map(str, input().split()))
planet_nums = ["ZRO", "ONE", "TWO", "THR", "FOR", "FIV", "SIX", "SVN", "EGT", "NIN"]
planet_dict = dict(zip(planet_nums, range(len(planet_nums)))) # list to dict
value_list = []
for key in nums:
value_list.append(planet_dict[key]) # ํค๋ก ๊ฐ์ ์ ๊ทผํด์ ๊ฐ๋ง ์ ์ฅ
value_list = sorted(value_list)
# ๋ฆฌ์คํธ ์ธ๋ฑ์ค์ ๋ง๊ฒ ์ถ๋ ฅ
result = []
print(f"#{test_case}")
for i in value_list:
result.append(planet_nums[i])
print(*result)
์ ์ฝ๋์์ ์ฑ๋ฅ์ ์กฐ๊ธ ๋ ๊ฐ์ ํ๊ณ ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ค ์ ์๋ ๋ถ๋ถ์ด ๋ช ๊ฐ์ง๊ฐ ์๋ค. ์ฃผ์ ์์ ์ฌํญ์ ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ ์ ํ์ฉํ์ฌ ์ค๊ฐ ๋ฆฌ์คํธ๋ฅผ ์ค์ด๊ณ , sorted() ์์ ์ง์ ๋ณํ๊ณผ ์ ๋ ฌ์ ํ ๋ฒ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฝ๋๊ฐ ๋ ๊น๋ํด์ง๊ณ ๋ถํ์ํ ๋ณ์ ์์ฑ๋ ์ค์ด๋ ๋ค.
์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ
- planet_dict์ ์ ์ธ ๋ฐฉ๋ฒ ๊ฐ์ํ
- ๋ฆฌ์คํธ์์ ๋์ ๋๋ฆฌ๋ฅผ ์์ฑํ๋ฉด์ ์ธ๋ฑ์ค๋ ๋ฐ๋ก ์ค์ ํ๋๋ก ์์
- ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์
๊ณผ sorted() ํจ์ ์ฌ์ฉ
- ์ค๊ฐ์ value_list๋ฅผ ์์ฑํ์ง ์๊ณ , sorted(nums, key=lambda word: planet_dict[word])๋ฅผ ํตํด ๋ฐ๋ก ์ ๋ ฌ๋ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ฆ
- ์ถ๋ ฅ ํ์ ๊ฐ์ํ
- print(' '.join(sorted_nums))๋ฅผ ์ฌ์ฉํด ์ ๋ ฌ๋ ์ซ์ ๋ฆฌ์คํธ๋ฅผ ๋ฐ๋ก ์ถ๋ ฅ
์ต์ ํ๋ ์ฝ๋
T = int(input())
for test_case in range(1, T + 1):
_, _ = input().split() # ํ
์คํธ ์ผ์ด์ค ๋ฒํธ์ ๊ธธ์ด๋ ๋ฌด์
nums = input().split() # ์ซ์ ๋ฌธ์์ด ๋ฆฌ์คํธ ์
๋ ฅ
# ์ซ์ ๋จ์ด์ ์ธ๋ฑ์ค๋ฅผ ๋งคํํ๋ ๋์
๋๋ฆฌ ์์ฑ
planet_nums = ["ZRO", "ONE", "TWO", "THR", "FOR", "FIV", "SIX", "SVN", "EGT", "NIN"]
planet_dict = {word: index for index, word in enumerate(planet_nums)}
# planet_dict์ ์ธ๋ฑ์ค์ ๋ฐ๋ผ ์ ๋ ฌ๋ ์ซ์ ๋ฆฌ์คํธ ์์ฑ
sorted_nums = sorted(nums, key=lambda word: planet_dict[word])
# ์ถ๋ ฅ
print(f"#{test_case}")
print(' '.join(sorted_nums))
sol.2 (53,628 kb / 214 ms)
# ํ์ฑ์ ์ซ์ ๋จ์ด์ ์์๋ฅผ ๋งคํ
planet_numbers = ["ZRO", "ONE", "TWO", "THR", "FOR", "FIV", "SIX", "SVN", "EGT", "NIN"]
order_dict = {word: index for index, word in enumerate(planet_numbers)}
# ์
๋ ฅ๋ ๋ฌธ์์ด ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฌํ๋ ํจ์
def sort_planet_numbers(words):
# ๊ฐ ๋จ์ด๋ฅผ order_dict์ ๊ฐ(์ซ์)์ ๋ฐ๋ผ ์ ๋ ฌ
sorted_words = sorted(words, key=lambda word: order_dict[word])
# ๊ฒฐ๊ณผ๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ์ฐ๊ฒฐํ์ฌ ๋ฐํ
return ' '.join(sorted_words)
# ํ
์คํธ ์ผ์ด์ค ์คํ
T = int(input())
for test_case in range(1, T + 1):
input() # ํ
์คํธ ์ผ์ด์ค ๋ฒํธ์ ๊ธธ์ด๋ฅผ ๋ฐ๋ ์ค์ ์๋ต
nums = input().split() # ์ซ์ ๋ฌธ์์ด ๋ฆฌ์คํธ ์
๋ ฅ
sorted_string = sort_planet_numbers(nums)
print(f"#{test_case}")
print(sorted_string)
๐ฉ๐ป ํ๊ณ
์๊ฐ ๋ง์ด ์์ ๋ฌธ์ ๋ค... ํ์ด ๋ฐฉ๋ฒ๋ ๋ค์ํด์ ์ด ๋ฌธ์ ๋ ํ๊ธฐ ๋๋ฆ์ด๊ตฌ๋ ์๊ฐํ๋ค. ๋์ ๋๋ฆฌ๋ฅผ ์ฐ์ง ์์๋ ํ ์ ์๊ฒ ์ง๋ง ์ด๊ฒ ์ ์ผ ์ข์ ํด๊ฒฐ๋ฒ์ธ ๊ฒ ๊ฐ๋ค.
์คํ ์๊ฐ ์ธก๋ฉด์์.
sol.1 ์ผ๋ก ์ ์ถ ์ ์ ์ถ๋ ฅ๋ฌธ์ print(planet_nums[i], end = '') ๋ผ๊ณ ํ๋๋ ์คํ ์๊ฐ์ด ๊ธธ์์๋ค. append() ํ๋๊ฒ ๋ ์ค๋ ๊ฑธ๋ฆด ๊ฒ ๊ฐ์๋๋ฐ ์ญ์ ์ถ๋ ฅ์ด ๋ ์ค๋๊ฑธ๋ ธ๋ค. ์ฌ๋งํ๋ฉด print() ๋ ์ต๋ํ ํ ๋ฒ๋ง ์ธ ์ ์๋๋ก ์ง์ผ๊ฒ ๋ค๋ ๊ฑธ ๊นจ๋ฌ์๋ค.
์ฌ์ฉํ์ง ์์ ๋ณ์.
์ฌ์ฉํ์ง ์๋ ๊ฑด ๊ตณ์ด ์ด๋ฆ์ ๋ถ์ผ ํ์ ์์ด _(์ธ๋๋ฐ)๋ฅผ ํด์ฃผ๊ธฐ๋ง ํ๋ฉด ๋๋ค๋ ๊ฑธ ์์๋ค. ์ ๊ทธ๋๋ ๋ณ์ ์ด๋ฆ์ ์ง๋๋ฐ ๋๋ฆ ๊ณ ์ฌํ๊ธฐ ๋๋ฌธ์ ๋ณด๊ธฐ์๋ ํธํ์ง๋ง ๊ฐ๋ ์ฃผ๊ฐ์ ๋๊ฐ ๋ ๋๋ ์๋ค.
์ปดํ๋ฆฌํจ์ .
ํ์ด์ฌ ํน์ง ๋ต๊ฒ ์ต์ ํ๋ ์ฝ๋์์ ์ปดํ๋ฆฌํจ์ ์ ๋ง์ด ์ฌ์ฉ๋ ๊ฑธ ๋ณผ ์ ์๋ค. ์ปดํ๋ฆฌํจ์ ์ ์์ฃผ ์ฌ์ฉํ๋ ค๊ณ ๋ ํ์ง๋ง ์์ง ๋ ธ๋ ฅ์ด ๋ง์ด ํ์ํด ๋ณด์ธ๋ค. ์์ฐ์ค๋ฝ๊ฒ ์๊ฐ ์๊ณ ์น ์ ์๋๋ก ์ฐ์ต์ ๋ง์ด ํด๋ด์ผ๊ฒ ๋ค.
๐๏ธ ์ถ๊ฐ๋ก ๊ณต๋ถํด์ผ ํ ๊ฑฐ.
enumerate์ lambda ์ฌ์ฉ๋ฒ
'๐งฉ Algorithm > SWEA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [SWEA] 11736. ํ๋ฒํ ์ซ์ (Python/D3) (0) | 2024.10.29 |
|---|---|
| [SWEA] 3499. ํผํํธ ์ ํ (Python/D3) (0) | 2024.10.29 |
| [SWEA] 3142. ์์ค์ด์ ์ ๋นํ ๋ฟ์ ์ฒ (Python/D3) (0) | 2024.10.26 |
| [SWEA] 10200. ๊ตฌ๋ ์ ์ ์ (Python/D3) (0) | 2024.10.26 |
| [SWEA] 1209. [S/W ๋ฌธ์ ํด๊ฒฐ ๊ธฐ๋ณธ] 2์ผ์ฐจ - Sum (Python/D3) (0) | 2024.10.25 |