๋ฌธ์ ์ค๋ช
์์์๋ ๋งค๋ ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ๊ฐ ์ด๋ฆฝ๋๋ค. ํด์ค์ง๋ค์ ์ ์๋ค์ด ์๊ธฐ ๋ฐ๋ก ์์ ์ ์๋ฅผ ์ถ์ํ ๋ ์ถ์ํ ์ ์์ ์ด๋ฆ์ ๋ถ๋ฆ ๋๋ค. ์๋ฅผ ๋ค์ด 1๋ฑ๋ถํฐ 3๋ฑ๊น์ง "mumu", "soe", "poe" ์ ์๋ค์ด ์์๋๋ก ๋ฌ๋ฆฌ๊ณ ์์ ๋, ํด์ค์ง์ด "soe"์ ์๋ฅผ ๋ถ๋ ๋ค๋ฉด 2๋ฑ์ธ "soe" ์ ์๊ฐ 1๋ฑ์ธ "mumu" ์ ์๋ฅผ ์ถ์ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ "soe" ์ ์๊ฐ 1๋ฑ, "mumu" ์ ์๊ฐ 2๋ฑ์ผ๋ก ๋ฐ๋๋๋ค.
์ ์๋ค์ ์ด๋ฆ์ด 1๋ฑ๋ถํฐ ํ์ฌ ๋ฑ์ ์์๋๋ก ๋ด๊ธด ๋ฌธ์์ด ๋ฐฐ์ด players์ ํด์ค์ง์ด ๋ถ๋ฅธ ์ด๋ฆ์ ๋ด์ ๋ฌธ์์ด ๋ฐฐ์ด callings๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฒฝ์ฃผ๊ฐ ๋๋ฌ์ ๋ ์ ์๋ค์ ์ด๋ฆ์ 1๋ฑ๋ถํฐ ๋ฑ์ ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- 5 ≤ players์ ๊ธธ์ด ≤ 50,000
- players[i]๋ i๋ฒ์งธ ์ ์์ ์ด๋ฆ์ ์๋ฏธํฉ๋๋ค.
- players์ ์์๋ค์ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- players์๋ ์ค๋ณต๋ ๊ฐ์ด ๋ค์ด๊ฐ ์์ง ์์ต๋๋ค.
- 3 ≤ players[i]์ ๊ธธ์ด ≤ 10
- 2 ≤ callings์ ๊ธธ์ด ≤ 1,000,000
- callings๋ players์ ์์๋ค๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ๊ฒฝ์ฃผ ์งํ์ค 1๋ฑ์ธ ์ ์์ ์ด๋ฆ์ ๋ถ๋ฆฌ์ง ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
players | callings | result |
["mumu", "soe", "poe", "kai", "mine"] | ["kai", "kai", "mine", "mine"] | ["mumu", "kai", "mine", "soe", "poe"] |
์ ์ถ๋ ฅ ์ ์ค๋ช
- ์
์ถ๋ ฅ ์ #1
- 4๋ฑ์ธ "kai" ์ ์๊ฐ 2๋ฒ ์ถ์ํ์ฌ 2๋ฑ์ด ๋๊ณ ์์ 3๋ฑ, 2๋ฑ์ธ "poe", "soe" ์ ์๋ 4๋ฑ, 3๋ฑ์ด ๋ฉ๋๋ค. 5๋ฑ์ธ "mine" ์ ์๊ฐ 2๋ฒ ์ถ์ํ์ฌ 4๋ฑ, 3๋ฑ์ธ "poe", "soe" ์ ์๊ฐ 5๋ฑ, 4๋ฑ์ด ๋๊ณ ๊ฒฝ์ฃผ๊ฐ ๋๋ฉ๋๋ค. 1๋ฑ๋ถํฐ ๋ฐฐ์ด์ ๋ด์ผ๋ฉด ["mumu", "kai", "mine", "soe", "poe"]์ด ๋ฉ๋๋ค.
ํ์ด
- ์ด๋ฆ์ด ๋ถ๋ฆฐ ์ ๋ ๊ทธ ์์ ์๋ ์ ๋ ์ค์ํด์ฃผ๋ฉด ๋๋๊ฑฐ ์๋๊ฐ?
- ...๋ ์๊ฐ์ด๊ณผ์ ๊ฑธ๋ฆผ.
- swap์ด ์๊ฐ์ด๊ณผ์ ๊ฑธ๋ ธ์๋ฆฌ๋ ์๊ณ , for๋ฌธ์ผ๋ก ๋๋ฆฌ๋ฉด์ index๋ก ์์น ์ฐพ๋ ๋ถ๋ถ์ด ๋ฌธ์ ๊ฐ์.
- ๊ทธ๋์ ํด์ฌ๋ก ๋์ด ์๋ ๋์ ๋๋ฆฌ๋ฅผ 2๊ฐ ๋ง๋ค์ด์, key๋ก value ์ฐพ๋ ์ ํ๋, value๋ก ํค ์ฐพ๋ ์ ํ๋ ๋ง๋ค์ด์ ์ด์ค ์ค์ํด์คฌ๋ค.
- ๊ทธ๋ฆฌ๊ณ ๊ฒฐ๊ณผ๋ก ๋์จ ๊ฑธ value ๊ธฐ์ค์ผ๋ก ๋ค์ ์ ๋ ฌํ๊ณ , key๋ง ๋ฝ์์ ๋ฆฌ์คํธ๋ก ๋ง๋ค์๋ค.
def solution(players, callings):
dic = {}
reverse_dic = {}
answer = []
for i,p in enumerate(players):
dic[p] = i
reverse_dic[i] = p
for c in callings:
i = dic[c]
cc = reverse_dic[i-1]
dic[c],dic[cc] = dic[cc],dic[c]
reverse_dic[i],reverse_dic[i-1] = reverse_dic[i-1],reverse_dic[i]
dic2 = sorted(dic.items(), key=lambda x:x[1])
for d in dic2:
answer.append(d[0])
return answer
- ์ข ๊พธ์ง๊พธ์งํ๊ธด ํ์ง๋ง ํ์๋ค... ใ ใ
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค LV2 ์ฐ์๋ ๋ถ๋ถ ์์ด์ ํฉ (0) | 2023.06.23 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค LV1 ๊ณต์ ์ฐ์ฑ (0) | 2023.06.23 |
ํ๋ก๊ทธ๋๋จธ์ค LV1 ์ถ์ต ์ ์ (0) | 2023.06.22 |
ํ๋ก๊ทธ๋๋จธ์ค์์ ๋ ๊ฐ์ ์ด๋ณด๋ฅผ ์ํด 0~2๋ ๋ฒจ ๋ฌธ์ ๋ฅผ ์ถ๊ฐ๋ก ๋ด์ฃผ์ จ๋ค. (0) | 2023.06.15 |
์์์ ์ฅ ๊ธ... (0) | 2023.05.20 |