๋ฌธ์ œ

๐Ÿ“Œ ํŒŒ์ด์ฌ ์œผ๋กœ ํ’€์ด

 

๐Ÿ“Œ ๋ฌธ์ œ ๋งํฌ :

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๐Ÿ“Œ ๋ฌธ์ œ ์„ค๋ช… :

์ผ๋ฐ˜์ ์ธ ํ”„๋ฆฐํ„ฐ๋Š” ์ธ์‡„ ์š”์ฒญ์ด ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•œ ๋ฌธ์„œ๊ฐ€ ๋‚˜์ค‘์— ์ธ์‡„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์š”๋„๊ฐ€ ๋†’์€ ๋ฌธ์„œ๋ฅผ ๋จผ์ € ์ธ์‡„ํ•˜๋Š” ํ”„๋ฆฐํ„ฐ๋ฅผ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ƒˆ๋กญ๊ฒŒ ๊ฐœ๋ฐœํ•œ ํ”„๋ฆฐํ„ฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ธ์‡„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

1. ์ธ์‡„ ๋Œ€๊ธฐ๋ชฉ๋ก์˜ ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ๋ฌธ์„œ(J)๋ฅผ ๋Œ€๊ธฐ๋ชฉ๋ก์—์„œ ๊บผ๋ƒ…๋‹ˆ๋‹ค.
2. ๋‚˜๋จธ์ง€ ์ธ์‡„ ๋Œ€๊ธฐ๋ชฉ๋ก์—์„œ J๋ณด๋‹ค ์ค‘์š”๋„๊ฐ€ ๋†’์€ ๋ฌธ์„œ๊ฐ€ ํ•œ ๊ฐœ๋ผ๋„ ์กด์žฌํ•˜๋ฉด J๋ฅผ ๋Œ€๊ธฐ๋ชฉ๋ก์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋„ฃ์Šต๋‹ˆ๋‹ค.
3. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด J๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, 4๊ฐœ์˜ ๋ฌธ์„œ(A, B, C, D)๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ธ์‡„ ๋Œ€๊ธฐ๋ชฉ๋ก์— ์žˆ๊ณ  ์ค‘์š”๋„๊ฐ€ 2 1 3 2 ๋ผ๋ฉด C D A B ์ˆœ์œผ๋กœ ์ธ์‡„ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ธ์‡„๋ฅผ ์š”์ฒญํ•œ ๋ฌธ์„œ๊ฐ€ ๋ช‡ ๋ฒˆ์งธ๋กœ ์ธ์‡„๋˜๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์˜ˆ์—์„œ C๋Š” 1๋ฒˆ์งธ๋กœ, A๋Š” 3๋ฒˆ์งธ๋กœ ์ธ์‡„๋ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋Œ€๊ธฐ๋ชฉ๋ก์— ์žˆ๋Š” ๋ฌธ์„œ์˜ ์ค‘์š”๋„๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ๋‹ด๊ธด ๋ฐฐ์—ด priorities์™€ ๋‚ด๊ฐ€ ์ธ์‡„๋ฅผ ์š”์ฒญํ•œ ๋ฌธ์„œ๊ฐ€ ํ˜„์žฌ ๋Œ€๊ธฐ๋ชฉ๋ก์˜ ์–ด๋–ค ์œ„์น˜์— ์žˆ๋Š”์ง€๋ฅผ ์•Œ๋ ค์ฃผ๋Š” location์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋‚ด๊ฐ€ ์ธ์‡„๋ฅผ ์š”์ฒญํ•œ ๋ฌธ์„œ๊ฐ€ ๋ช‡ ๋ฒˆ์งธ๋กœ ์ธ์‡„๋˜๋Š”์ง€ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 

๐Ÿ“Œ ์ œํ•œ ์‚ฌํ•ญ

  • ํ˜„์žฌ ๋Œ€๊ธฐ๋ชฉ๋ก์—๋Š” 1๊ฐœ ์ด์ƒ 100๊ฐœ ์ดํ•˜์˜ ๋ฌธ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ธ์‡„ ์ž‘์—…์˜ ์ค‘์š”๋„๋Š” 1~9๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ ์ˆซ์ž๊ฐ€ ํด์ˆ˜๋ก ์ค‘์š”ํ•˜๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.
  • location์€ 0 ์ด์ƒ (ํ˜„์žฌ ๋Œ€๊ธฐ๋ชฉ๋ก์— ์žˆ๋Š” ์ž‘์—… ์ˆ˜ - 1) ์ดํ•˜์˜ ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ ๋Œ€๊ธฐ๋ชฉ๋ก์˜ ๊ฐ€์žฅ ์•ž์— ์žˆ์œผ๋ฉด 0, ๋‘ ๋ฒˆ์งธ์— ์žˆ์œผ๋ฉด 1๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ“Œ ์ž…์ถœ๋ ฅ ์˜ˆ


ํ’€์ด

์ถ”์ธก) 

๋‚˜์ค‘์— ๊ฐ™์€ ์ˆซ์ž๋ผ๋ฆฌ ์œ„์น˜์ •๋ณด ํ—ท๊ฐˆ๋ฆฌ์ง€ ์•Š๊ฒŒ ์šฐ์„ ์ˆœ์œ„์˜ ์ˆซ์ž๋“ค๊ณผ ์ธ๋ฑ์Šค๋ฅผ ์ง์„ ์ง€์–ด์ฃผ๊ณ  ๋‹ค์‹œ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ฌ

๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋ฐฐ์—ด๋ฅผ ํ์ฒ˜๋Ÿผ ์ผ๋‹จ front์—์„œ ํ•˜๋‚˜ popํ•ด์„œ ์šฐ์„ ์ˆœ์œ„์˜ ๋งฅ์Šค ๊ฐ’์ด๋ž‘ ๋น„๊ต

๋งฅ์Šค๊ฐ’์ด๋ž‘ ๋™์ผํ•˜์ง€ ์•Š์œผ๋ฉด

 -     ๋‹ค์‹œ ๋ฐฐ์—ด์— appendํ•ด์„œ ๋’ค๋กœ ๋ณด๋‚ด๊ณ 

๋งฅ์Šค๊ฐ’์ด๋ž‘ ๋™์ผํ•˜๋ฉด ๊ทธ๋Œ€๋กœ ํ”„๋ฆฐํŠธ!

 -     ํ”„๋ฆฐํŠธ๋œ ์ˆœ์„œ ์นด์šดํŠธ๋ฅผ ์˜ฌ๋ฆผ

 -     ์šฐ์„ ์ˆœ์œ„์—์„œ ํ•ด๋‹น ์ˆซ์ž๋ฅผ popํ•ด์ฃผ์–ด ๋‹ค์Œ ์ˆœ๋ฒˆ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

 -     ํ”„๋ฆฐํŠธ๊ฐ€ ๋ฌ์„ ๋•Œ์˜ ์ธ๋ฑ์Šค๊ฐ€ location๊ณผ ์ผ์น˜ํ•œ๋‹ค๋ฉด ๊ทธ ์นด์šดํŠธ๋ฅผ ๋ฐ˜ํ™˜

 

์†Œ์Šค์ฝ”๋“œ) 

* 1์ฐจ) 

def solution(priorities, location):
    answer = 0 
    queue = [(i,priorities[i]) for i in range(0,len(priorities))]
    
    while True: 
        one = queue.pop(0)
        max_num = max(priorities)
        if one[1] != max_num :
            queue.append(one)
        else :
            priorities.pop(priorities.index(max_num))
            answer += 1
            if location == one[0] :
                return answer

 

๋ฆฌ๋ทฐ) 

์šฐ์„ ์ˆœ์œ„์—์„œ ๋งฅ์Šค๊ฐ’์„ popํ•  ๋•Œ ์ˆœ๊ฐ„ ๊ทธ๋Ÿผ ๊ฐ™์€ max๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—” ์–ด๋–ป๊ฒŒ ํ•˜์ง€๋ผ๋Š” ์˜๋ฌธ์ด ์ƒ๊ฒผ์—ˆ๋Š”๋ฐ

์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๋ชจ๋“  ๋งฅ์Šค๊ฐ’์„ ์‚ญ์ œํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ indexํ•จ์ˆ˜๋Š” ๊ฐ€์žฅ ๋จผ์ € ๊ฒ€์ƒ‰๋˜๋Š” ์ธ๋ฑ์Šค ํ•˜๋‚˜๋งŒ์„ ๊ฒ€์ƒ‰ํ•ด ์ฃผ๋Š”๊ฑฐ๋ผ

๋งฅ์Šค๊ฐ’ ์—ฌ๋Ÿฌ๊ฐœ ์žˆ์œผ๋ฉด ์ฒ˜์Œ๊บผ๋งŒ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ max ํ•จ์ˆ˜๋ฅผ ํ•˜๋ฉด ๋™์ผํ•œ ๊ฐ’์ด์ง€๋งŒ ๋‹ค๋ฅธ ๋งฅ์Šค๊ฐ’์ด ๊ฒ€์ƒ‰๋˜๋ฏ€๋กœ ๋ฌธ์ œ ์—†์—ˆ๋‹ค. 

+ Recent posts