๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด/๊ตฌํ˜„

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]ํ‘ธ๋“œ ํŒŒ์ดํŠธ ๋Œ€ํšŒ

by syLim___ 2023. 5. 14.
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/134240

 

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

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

programmers.co.kr


์ฒ˜์Œ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

def solution(food):
    front, end = [], []
    for i in range(1,len(food)):
        for j in range(food[i]//2):
            front.append(str(i))
            end.append(str(i))
    end.reverse()
    result = front + ['0'] + end # ๋ฌผ์€ ํ•ญ์ƒ 1๊ฐœ
    return ''.join(result)

 - ๋ฌผ์„ ์ œ์™ธํ•˜๊ณ  ์•ž์ชฝ ์ ˆ๋ฐ˜, ๋’ค์ชฝ ์ ˆ๋ฐ˜ ์ €์žฅํ•˜๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค.

 - ์Œ์‹์„ ๊ฐ ๋ฒˆํ˜ธ๋งˆ๋‹ค ์Œ์‹์˜ ๊ฐœ์ˆ˜ // 2 ๊ฐœ์”ฉ ๋ฐฐ์น˜ํ•œ๋‹ค.

 - ๋’ค์ชฝ ์ ˆ๋ฐ˜์€ ๊ฑฐ๊พธ๋กœ ๋’ค์ง‘์€ ๋’ค ๋ถ™์—ฌ์ค€๋‹ค.

 

์Œ์‹์ด ์ •๋ ฌ๋˜์–ด ์žˆ๊ณ , ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋Š” ์Œ์‹์€ ๊ทธ๋ƒฅ ๋ฒ„๋ฆฌ๋ฉด ๋˜๋ฏ€๋กœ ์•„์ฃผ ์‰ฌ์šด ๋ฌธ์ œ์ด๊ธด ํ–ˆ๋‹ค.

 

์ œ์ถœํ•˜๊ณ  ๋‚˜์„œ ๋‹ค๋ฅธ ๋ถ„๋“ค ํ’€์ด๋ฅผ ์ญ‰ ๋ณด๋‹ˆ๊นŒ

๊ตณ์ด ์ €๋ ‡๊ฒŒ ํž˜๋“ค๊ฒŒ ๋ฐฐ์—ด์„ ๋’ค์ง‘์„ ๊ฒŒ ์•„๋‹ˆ๋ผ ๋ฆฌ์ŠคํŠธ ์Šฌ๋ผ์ด์‹ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š”๊ฑฐ์˜€๋‹ค.

์ด๋Ÿฌ๋ ค๊ณ  ํŒŒ์ด์ฌ ์“ฐ๋Š” ๊ฑด๋ฐ ์™œ ์จ๋จน์งˆ ๋ชปํ–ˆ์„๊นŒ ์‹ถ์—ˆ๋‹น

 

์ˆ˜์ •ํ•œ ์ฝ”๋“œ

def solution(food):
    half = []
    for i in range(1,len(food)):
        for j in range(food[i]//2):
            half.append(str(i))
    result = half + ['0'] + half[::-1] # ๋ฌผ์€ ํ•ญ์ƒ 1๊ฐœ
    return ''.join(result)

์กฐ๊ธˆ ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋ฅผ ์กฐ๊ธˆ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค

728x90