๐Ÿ–ฅ๏ธ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/Python

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [Python] ๋‹ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ

rtw0202 2026. 3. 9. 12:06

1. ๋ฌธ์ œ ์„ค๋ช…

์–€์—์„œ๋Š” ๋งค๋…„ ๋‹ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ํ•ด์„ค์ง„๋“ค์€ ์„ ์ˆ˜๋“ค์ด ์ž๊ธฐ ๋ฐ”๋กœ ์•ž์˜ ์„ ์ˆ˜๋ฅผ ์ถ”์›”ํ•  ๋•Œ ์ถ”์›”ํ•œ ์„ ์ˆ˜์˜ ์ด๋ฆ„์„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 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๋“ฑ์ธ ์„ ์ˆ˜์˜ ์ด๋ฆ„์€ ๋ถˆ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

2. ์ถœ๋ ฅ ์˜ˆ์‹œ

 

3. ๋ฌธ์ œ ๋‹ต์•ˆ

def solution(players, callings):
    # ํ˜„์žฌ ๋“ฑ์ˆ˜
    rank = {name: i for i, name in enumerate(players)} 
    
    for name in callings:
        r = rank[name] # ์ด๋ฆ„ ๋ถˆ๋ฆฐ ์‚ฌ๋žŒ ๋“ฑ์ˆ˜
        front = players[r-1] # ์•ž์‚ฌ๋žŒ ์ด๋ฆ„
        players[r], players[r-1] = players[r-1], players[r]
        
        rank[name] -= 1 # ์ด๋ฆ„ ๋ถˆ๋ฆฐ ์‚ฌ๋žŒ ๋“ฑ์ˆ˜ ์•ž์œผ๋กœ ์ด๋™
        rank[front] += 1 # ์•ž์‚ฌ๋žŒ ๋“ฑ์ˆ˜ ๋’ค๋กœ ์ด๋™
            
    return players
    
    # ์ด๋ฆ„ ๋ถˆ๋ฆด ๋•Œ๋งˆ๋‹ค ์ธ๋ฑ์Šค ์œ„์น˜ ์ฐพ๊ณ  ๊ตํ™˜ํ•˜๋ฉด ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ†ต๊ณผํ•˜์ง€๋งŒ 
    # ํƒ์ƒ‰ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ค ๋น„ํšจ์œจ์ ์ด๋ฏ€๋กœ, ํ˜„์žฌ ๋“ฑ์ˆ˜๋ฅผ ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•จ