๐ŸŒžAlgorithm/๐Ÿ”ฅprogrammers

[programmers] ์‹คํŒจ์œจ - 2019 KAKAO BLIND RECRUITMENT

๋ฟŒ์•ผ._. 2021. 1. 3. 22:27

<์‹คํŒจ์œจ>

 

๋ฌธ์ œ(์ถœ์ฒ˜: https://school.programmers.co.kr/learn/courses/30/lessons/42889)

 

 

๋ฌธ์ œ ํ’€์ด

    - my solution

def solution(N, stages):
    answer = []
    
    temp=[0]*N

    count=len(stages) #1๋‹จ๊ณ„๋Š” ์ „๋ถ€ ์‹œ๋„์ค‘์ด๋ฏ€๋กœ ์ฒ˜์Œ์€ ์ „์ฒด ์ธ์›
    j=0
    for i in temp:
        x=stages.count(j+1)
        if(x==0 or count==0): #0์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ ๋ฐฉ์ง€
            temp[j]=0
        else:
            temp[j]=x/count
        j+=1
        count-=x #์•ž๋‹จ๊ณ„ ํด๋ฆฌ์–ดํ•˜์ง€ ๋ชปํ•œ ์‚ฌ๋žŒ ๋นผ๊ธฐ
        
    while(temp.count(-1)!=len(temp)): #๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์Šคํ…Œ์ด์ง€ ์ •๋ ฌ
        answer.append(temp.index(max(temp))+1)
        temp[temp.index(max(temp))]=-1
        
    return answer

  N: ์Šคํ…Œ์ด์ง€ ๊ฐœ์ˆ˜

  stages: ์‚ฌ์šฉ์ž๋“ค์ด ํ˜„์žฌ ๋„์ „ ์ค‘์ธ ์Šคํ…Œ์ด์ง€์˜ ๋ฒˆํ˜ธ 

  temp: ์‹คํŒจ์œจ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฆฌ์ŠคํŠธ

  answer: ์‹คํŒจ์œจ์ด ๋†’์€ ์Šคํ…Œ์ด์ง€๋ถ€ํ„ฐ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์Šคํ…Œ์ด์ง€์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ฒจ์žˆ๋Š” ๋ฐฐ์—ด

 

  1) 1๋‹จ๊ณ„๋Š” ์ „๋ถ€ ์‹œ๋„ํ•œ ๊ฒƒ์ด๋ฏ€๋กœ ์ „์ฒด ์ธ์›์œผ๋กœ setting

  2) ์‹คํŒจ์œจ์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ์•„์ง ํด๋ฆฌ์–ดํ•˜์ง€ ๋ชปํ•œ ํ”Œ๋ ˆ์ด์–ด์˜ ์ˆ˜๋ฅผ ์„ธ์–ด x์— ์ €์žฅ

      2-1) ๋„์ „ ์ค‘์ธ ์‚ฌ์šฉ์ž๋“ค์˜ ์ˆ˜ or ์•„์ง ํด๋ฆฌ์–ดํ•˜์ง€ ๋ชปํ•œ ํ”Œ๋ ˆ์ด์–ด์˜ ์ˆ˜๊ฐ€ 0์ด๋ฉด ์‹คํŒจ์œจ 0์œผ๋กœ ์ €์žฅ

      2-2) 0์ด ์•„๋‹Œ ๊ฒฝ์šฐ ๋„์ „ ์ค‘์ธ (ํด๋ฆฌ์–ดํ•˜์ง€ ๋ชปํ•œ ํ”Œ๋ ˆ์ด์–ด์˜ ์ˆ˜)/(์Šคํ…Œ์ด์ง€์— ๋„๋‹ฌํ•œ ํ”Œ๋ ˆ์ด์–ด ์ˆ˜) ๊ณ„์‚ฐ

      2-3) ๋‹ค์Œ ์Šคํ…Œ์ด์ง€์— ๋„๋‹ฌํ•œ ํ”Œ๋ ˆ์ด์–ด์ˆ˜๋Š” ์ „ ๋‹จ๊ณ„๋ฅผ ํด๋ฆฌ์–ดํ•˜์ง€ ๋ชปํ•œ ์‚ฌ๋žŒ์„ ๋นผ์ค€๋‹ค

  3) ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ’์ด ์ „๋ถ€ ๋‹ค -1์ด ์•„๋‹ ๊ฒฝ์šฐ ๊ณ„์† ๋ฐ˜๋ณต

     3-1) ์ตœ๋Œ“๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ answer์— ์ €์žฅ

     3-2) ๊ทธ ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ -1๋กœ ์ €์žฅ


์ฒ˜์Œ์— ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์ง€๋งŒ 0์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” if๋ฌธ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์€ ์Šคํ…Œ์ด์ง€์— ๋„๋‹ฌํ•œ ํ”Œ๋ ˆ์ด์–ด ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

 

์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต, https://programmers.co.kr/learn/challenges