๐Ÿ‘ฉ‍๐Ÿ’ปStudy Group/๐Ÿซง2020-2021 ๋™๊ณ„ ๋ชจ๊ฐ์ฝ”_์™€ํ”ŒํŒฌ์ผ€์žŒํ˜ธ๋–ก

01์›” 4์ผ ๋ชจ๊ฐ์ฝ”_์™€ํŒฌํ˜ธ 3ํšŒ์ฐจ ๊ฒฐ๊ณผ ๋ณด๊ณ ์„œ

๋ฟŒ์•ผ._. 2021. 1. 4. 22:54

2021๋…„ 01์›” 4์ผ ์›”์š”์ผ 20:00~23:00

 

๐Ÿ”ฅ programmers 1๋‹จ๊ณ„ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ชฉ๋ก ๐Ÿ”ฅ

  • [1์ฐจ] ๋‹คํŠธ ๊ฒŒ์ž„
      - 2018 KAKAO BLIND RECRUITMENT
      - ์˜ˆ์ „์— ํ’€์–ด๋ณผ ๊ธฐํšŒ๊ฐ€ ์žˆ์–ด ํ•œ๋ฒˆ ํ•ด๋ดค์—ˆ๋˜ ๋ฌธ์ œ์˜€๋‹ค.
        ์˜ˆ์ „์—๋Š” ์–ด๋ ค์› ์—ˆ์ง€๋งŒ ์ง€๊ธˆ ๋‹ค์‹œ ํ’€์–ด๋ณด๋‹ˆ ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ต์ง€ ์•Š์€ ๋ฌธ์ œ์˜€๋‹ค
      - ๋‹จ์ˆœ ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๋ฌธ์ œ
  • ์ฒด์œก๋ณต
      - ํƒ์š•๋ฒ•
      - ๋‹จ์ˆœ ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์œผ๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ
      - ์–‘ ๋์ธ ๊ฒฝ์šฐ์™€ ์ค‘๊ฐ„์ธ ๊ฒฝ์šฐ๋ฅผ ๋‚˜๋ˆ„์–ด ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ์˜€๋‹ค
  • ๋ชจ์˜๊ณ ์‚ฌ
      - ์™„์ „ ํƒ์ƒ‰
      - 2ํšŒ์ฐจ๋•Œ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ ๋ฐœ์ƒํ•œ ๊ฒƒ ํ•ด๊ฒฐ -> ์ •๋‹ต ํ™•์ธํ•˜๋Š” ๊ฒƒ์„ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„
  • ๋ฌธ์ž์—ด ๋‚ด ๋งˆ์Œ๋Œ€๋กœ ์ •๋ ฌํ•˜๊ธฐ
      - ๋ฌธ์ œ๋งŒ ์ฝ์—ˆ์„ ๋•Œ ๋ณต์žกํ•ด ๋ณด์˜€์ง€๋งŒ ์กฐ๊ฑด์„ ์ž˜ ๋‚˜๋ˆ„์–ด ๊ตฌํ˜„ํ•˜๋ฉด ํ•ด๊ฒฐ ๊ฐ€๋Šฅ
      - n๋ฒˆ์งธ ๊ธ€์ž๊ฐ€ ๊ฐ™์€ ๋ฌธ์ž์—ด์ด ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด์„ 
        ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ!์ด์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค
         -> n๋ฒˆ์งธ ๊ธ€์ž๊ฐ€ ๊ฐ™์€ ๋ฌธ์ž์—ด๋งŒ ๋ฆฌ์ŠคํŠธ์— ๋”ฐ๋กœ ์ถ”๊ฐ€ํ•œ ํ›„ ์ •๋ ฌํ•˜์—ฌ ๊ฒฐ๊ณผ ๋ฆฌ์ŠคํŠธ์—
             ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.
  • ์˜ˆ์‚ฐ
      - Summer/Winter Coding(~2018)
      - ์ฒ˜์Œ์—๋Š” ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ ๊ฐ€๋Šฅํ•œ ์กฐํ•ฉ์„ ๋‹ค ํ•ด๋ด์•ผ ํ•˜๋Š” ๊ฒƒ์ธ๊ฐ€ ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์—ˆ๋‹ค.
        ํ•˜์ง€๋งŒ ์ตœ๋Œ€ ๋ถ€์„œ์— ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ํ›„ ์ž‘์€ ๊ฐ’๋ถ€ํ„ฐ ์˜ˆ์‚ฐ์—์„œ ๋นผ๋ฉด
        ์ตœ๋Œ€ ๋ถ€์„œ์— ์ง€์› ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.
      - ์ •๋ ฌ ํ›„ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ˆ์‚ฐ์ด ๋‚จ์•„์žˆ์„ ๋•Œ๊นŒ์ง€ ์ง€์›ํ•œ ํ›„ ์ง€์›ํ•œ ๋ถ€์„œ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ ๊ฒฐ๊ณผ
        ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
       

์ฒด์œก๋ณต

 

 

๋ฌธ์ œ ํ’€์ด

 

def solution(n, lost, reserve):
    answer = 0
    temp=[]
    for i in range(n): #1๋กœ setting
        temp.append(1)
    for i in lost: # ๋„๋‚œ๋‹นํ•œ ํ•™์ƒ๋“ค
        temp[i-1]-=1
    for i in reserve: # ์—ฌ๋ฒŒ์˜ ์ฒด์œก๋ณต ๊ฐ€์ ธ์˜จ ํ•™์ƒ๋“ค
        temp[i-1]+=1
    
    for i in range(len(temp)):
        if(temp[i]==0): # ์ฒด์œก๋ณต์ด ์—†์œผ๋ฉด
            if(i!=0 and i<len(temp)-1): #์–‘ ๋ ํ•™์ƒ์ด ์•„๋‹ˆ๋ฉด
                if(temp[i-1]==2): #์•ž์‚ฌ๋žŒ์ด 2๊ฐœ๋ฉด ๋นŒ๋ฆผ
                    temp[i-1]=1
                    temp[i]=1
                elif(temp[i+1]==2): #๋’ท์‚ฌ๋žŒ์ด 2๊ฐœ๋ฉด ๋นŒ๋ฆผ
                    temp[i]=1
                    temp[i+1]=1
            else: #์–‘ ๋ ํ•™์ƒ์ด๋ฉด
                if(i==0 and temp[i+1]==2): # ๋งจ ์•ž ์‚ฌ๋žŒ & ๋’ท์‚ฌ๋žŒ์ด ์—ฌ๋ณ„์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด
                    temp[i]=1
                    temp[i+1]=1
                elif(i==len(temp)-1 and temp[i-1]==2): # ๋งจ ๋’ท์‚ฌ๋žŒ & ์•ž์‚ฌ๋žŒ์ด ์—ฌ๋ฒŒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด
                    temp[i]=1
                    temp[i-1]=1
    for i in range(len(temp)): # ์ฒด์œก์ˆ˜์—… ๋“ค์„ ์ˆ˜ ์žˆ๋Š” ํ•™์ƒ count
        if(temp[i]>0):
            answer+=1
            
    return answer

 1) ๋จผ์ € ๋ฆฌ์ŠคํŠธ๋ฅผ ํ•™์ƒ ์ˆ˜์— ๋งž์ถฐ 1๋กœ setting

 2) ๋„๋‚œ๋‹นํ•œ ํ•™์ƒ๋“ค์€ 1 ๊ฐ์†Œ

 3) ์—ฌ๋ฒŒ์˜ ์ฒด์œก๋ณต์„ ๊ฐ€์ ธ์˜จ ํ•™์ƒ๋“ค์€ 1 ์ฆ๊ฐ€

 4) ๋ฆฌ์ŠคํŠธ ์ˆœํšŒ

     4-1) ์ฒด์œก๋ณต์ด ์—†์œผ๋ฉด

           4-1-1) ์–‘ ๋ ํ•™์ƒ์ด ์•„๋‹ˆ๋ฉด

                     4-1-1-1) ์•ž์‚ฌ๋žŒ์ด 2๊ฐœ๋ฉด ๋นŒ๋ฆผ

                     4-1-1-2) ๋’ท์‚ฌ๋žŒ์ด 2๊ฐœ๋ฉด ๋นŒ๋ฆผ

           4-1-2) ์–‘ ๋ ํ•™์ƒ์ด๋ฉด

                     4-1-2-1) ๋งจ ์•ž์‚ฌ๋žŒ & ๋’ท์‚ฌ๋žŒ์ด ์—ฌ๋ฒŒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด: ๋’ท์‚ฌ๋žŒํ•œํ…Œ ๋นŒ๋ฆผ

                     4-1-2-2) ๋งจ ๋’ท์‚ฌ๋žŒ & ์•ž์‚ฌ๋žŒ์ด ์—ฌ๋ฒŒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด: ์•ž์‚ฌ๋žŒํ•œํ…Œ ๋นŒ๋ฆผ

 5) ์ฒด์œก ์ˆ˜์—…์„ ๋“ค์„ ์ˆ˜ ์žˆ๋Š” ํ•™์ƒ count