๋ฌธ์
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๊ฐ๋จํ ๊ตฌํ ๋ฌธ์ ์ธ๋ฐ, ์๊ฐ ๋ณต์ก๋๋ฅผ ์๊ฐํด์ผ ํ๋ ๋ฌธ์ ์ด๋ค.
ํ์ด ๋ฐฉ๋ฒ
์ ๊ทผ ๋ฐฉ๋ฒ์ด ์์ ํ๋ฆฐ ๊ฑด ์๋์๋๋ฐ, ๋ด๊ฐ ์ฒ์์ ํ์๋ ๋ฐฉ์์ ๊ณ์ ํธ๋ช ํ ์ด๋ฆ์ ์ฐพ์ ๋๊น์ง ๋ฐ๋ณต๋ฌธ์ ๋๊ธฐ ๋๋ฌธ์ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค.
๊ทธ๋์ ๋งํฌ๋ฅผ ๊ธฐ์ค์ผ๋ก(ํค๊ฐ์ผ๋ก) ์ ์ ์ด๋ฆ์ ์ ์ฅํ๋ ๋์ ๋๋ฆฌ์ ์ ์ ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก(ํค๊ฐ์ผ๋ก) ๋ฑ์๋ฅผ ์ ์ฅํ๋ ๋์ ๋๋ฆฌ ๋ ๊ฐ๋ฅผ ํตํด ํด๋น ์๊ฐ ์ด๊ณผ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๋ค.
์ฝ๋
######## ์๊ฐ ์ด๊ณผ ์ฝ๋ ########
def solution(players, callings):
answer = []
for x in callings:
for idy, y in enumerate(players):
if idy!= 0 and x == y:
players[idy-1], players[idy] = players[idy], players[idy-1]
break
answer = players
return answer
######## ์ ๋ต ์ฝ๋ ########
def solution(players, callings):
rank = {} # ์์: ์ ์ ์ด๋ฆ
player = {} # ์ ์ ์ด๋ฆ: ์์
for idx, x in enumerate(players):
rank[idx] = x
player[x] = idx
for y in callings:
this_rank = player[y] # ํ์ฌ ๋ถ๋ฆฐ ์ ์ ์์
prev_rank = this_rank - 1 # ๋ถ๋ฆฐ ์ ์ ์์ ์ ์์
prev_person = rank[prev_rank] # ๋ถ๋ฆฐ ์ ์ ์์ ์ ์ฌ๋ ์ด๋ฆ
rank[prev_rank], rank[this_rank] = rank[this_rank], rank[prev_rank]
player[prev_person], player[y] = player[y], player[prev_person]
answer = list(rank.values())
return answer
'์๊ณ ๋ฆฌ์ฆ > [ํ๋ก๊ทธ๋๋จธ์ค]' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
PROG LV1 : ์ถ์ต ์ ์ (python) (0) | 2023.05.11 |
---|---|
PROG LV2 : ์ ์ ์ ๊ณฑ๊ทผ ํ๋ณ (python) (0) | 2023.03.05 |
PROG LV2 : ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์ (python) (0) | 2023.03.05 |
PROG LV2 : ์๋ฆฟ์ ๋ํ๊ธฐ (python) (0) | 2023.03.05 |
PROG LV1 : ์ง์์ ํ์ (python) (0) | 2023.03.05 |