๐๏ธ ๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/178871
๐ก์์ด๋์ด
1๏ธโฃ ์ฒซ ๋ฒ์งธ ํ์ด
callings๋ฅผ ๋ฐ๋ณตํด์ players์ ๊ฐ์ด ๊ฐ์ผ๋ฉด ๊ทธ์ ๊ฐ๊ณผ ์๋ฆฌ๋ฅผ ๋ฐ๊ฟ์ค๋ค
=> ์๊ฐ ์ด๊ณผ
2๏ธโฃ ๋ ๋ฒ์งธ ํ์ด
๋์
๋๋ฆฌ๋ฅผ ๋ง๋ค์ด์ callings ๊ฐ์ด ๋์ฌ ๋๋ง๋ค values ๊ฐ์ -1 ํด์ค๋ค
์ด๋, ๋์
๋๋ฆฌ๋ ์ธ๋ฐ์ค๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ ์ฌ์ค์ ์์ง ๋ง์!
โ๏ธ ๋ด ํ์ด
์๊ฐ ์ด๊ณผ ํ์ด
# ๋ฐ๋ณต๋ฌธ์ผ๋ก ํ๊ธฐ 1์ฐจ์๋
def solution(players, callings):
for i in range(len(callings)):
for j in range(1, len(players)):
if players[j] == callings[i]:
players[idx], players[idx-1] = players[idx-1], players[idx]
# print(players)
answer = players
return answer
# ๋ฐ๋ณต๋ฌธ 2์ฐจ์๋
def solution(players, callings):
for i in callings:
idx = players.index(i)
players[idx], players[idx-1] = players[idx-1], players[idx]
answer = players
return answer
์ฑ๊ณตํ ํ์ด
def solution(players, callings):
# ํ๋ ์ด์ด๋ค์ ์ธ๋ฑ์ค์ ๋ฐ๋ผ ๋์
๋๋ฆฌ ์์ฑ
players_dic = {player : index for index, player in enumerate(players)}
# callings๋ฅผ ๋ฐ๋ณตํด์ calling์ ๋ง์ถ์ด values ๊ฐ -1
## players๋ฅผ key๊ฐ์ผ๋ก ์ด์ฉํด์ผํ๊ธฐ ๋๋ฌธ์ ๊ผญ players ๋ฆฌ์คํธ ์์ ๋ณ๊ฒฝํด์ฃผ๊ธฐ
for calling in callings:
index = players_dic[calling]
players_dic[calling] -= 1
players_dic[players[index - 1]] += 1
players[index-1], players[index] = players[index], players[index-1]
return players
๐ ํ๊ธฐ
์ธ ํ์ด๋ก ์๊ฐ๋ณต์ก๋์ ๋ํด ์๊ฐํด ๋ณผ ์ ์์๋ค.
ํ๋ก๊ทธ๋๋จธ์ค์ ํ
์คํธ์ผ์ด์ค์์๋ 1-2 ํ์ด๊ฐ ์๊ฐ์ด๊ณผ๊ฐ ๋ ์งํ๋๋ค ๊ทธ๋ฌ๋, players.index(i)์ ๊ฒฝ์ฐ ํธ์ถํ ๋๋ง๋ค ์์ฐจ๊ฒ์* ์์ฐจ ๊ฒ์ : ์ฒ์๋ถํฐ ํ๋์ฉ ์ฐจ๋ก๋๋ก ๊ฒ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ํํ๋ฏ๋ก players์ ํฌ๊ธฐ๊ฐ ๋งค์ฐ ์ปค์ง๊ฒ ๋๋ฉด ์คํ๋ ค ๋ ์ฑ๋ฅ์ด ์ ํ๋ ์๋ ์๋ค.
์ฆ, ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํ 1-1, 1-2 ํ์ด๋ ์ฝ O(n*m)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ฒ ๋๋ฉฐ, ๋ง์ง๋ง ํ์ด์ ๊ฒฝ์ฐ O(n)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
'๐ป Coding > [Algorithm]Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค | ๋ฉ๋ฆฌ๋ฐ๊ธฐ โญโญโญ - Python (0) | 2024.04.15 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค | ๋ฐํํ๋ฉด ์ ๋ฆฌ โญ - Python (0) | 2024.04.06 |
ํ๋ก๊ทธ๋๋จธ์ค | ๊ทค ๊ณ ๋ฅด๊ธฐ โญโญ - Python (1) | 2024.04.03 |
ํ๋ก๊ทธ๋๋จธ์ค | ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌํ๊ธฐ โญ - Python (0) | 2024.04.02 |
์ํํฐ์ด | ์ฐ๋ฌผ ์ ๊ฐ๊ตฌ๋ฆฌ โญโญโญ - PYTHON (0) | 2024.03.22 |