๐Ÿงฉ Algorithm/[Programmers] Level 1

[Programmers] L1. ํ‘ธ๋“œ ํŒŒ์ดํŠธ ๋Œ€ํšŒ (Python)

devCloud 2024. 11. 11. 18:41
728x90

[๋ฌธ์ œ ๋งํฌ] ๐Ÿ‘‡

 

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

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr


ํ’€์ด ๋ฐฉ๋ฒ•

๐Ÿ’ก 2๋กœ ๋‚˜๋ˆ„๊ธฐ

 

์ฃผ์–ด์ง„ ์Œ์‹์˜ ์–‘์„ ๋‘ ์‚ฌ๋žŒ์—๊ฒŒ ๋‚˜๋ˆ„์–ด ์ฃผ์–ด์•ผ ํ•˜๋ฏ€๋กœ 2๋กœ ๋‚˜๋ˆˆ๋‹ค.  2๋กœ ๋‚˜๋ˆˆ ๋ชซ๋งŒํผ ์Œ์‹์„ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์น˜ํ•˜๋ฉด ๋œ๋‹ค.

 

์ž…๋ ฅ ์˜ˆ์‹œ

[1, 7, 1, 2]
  • 0๋ฒˆ์งธ ์ธ๋ฑ์Šค๋Š” ๋ฌผ์˜ ์–‘์ด๊ณ , ๋ฌผ์€ ํ•ญ์ƒ 1์ด๋ฏ€๋กœ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.
  • 1๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์Œ์‹์˜ ์–‘์ด ์ฃผ์–ด์ง„๋‹ค.
  • 1๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ 2๋กœ ๋‚˜๋ˆˆ ๋ชซ์€ 3์ด๋‹ค. ์ด ๋ง์€, 7๊ฐœ์˜ ์Œ์‹์„ 3๊ฐœ์”ฉ ๋‚˜๋ˆ„์–ด์„œ ๋‘ ์‚ฌ๋žŒ์—๊ฒŒ ์ค„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง์ด๋‹ค. ๋”ฐ๋ผ์„œ 1์„ 3๋งŒํผ ์ €์žฅํ•œ๋‹ค.
  • 2๋ฒˆ์งธ ์ธ๋ฑ์Šค๋Š” 2๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ ๋‘ ์‚ฌ๋žŒ์—๊ฒŒ ๋‚˜๋ˆ„์–ด ์ค„ ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌด์‹œํ•œ๋‹ค.
  • 3๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ 2๋กœ ๋‚˜๋ˆˆ ๋ชซ์€ 1์ด๋‹ค. ์ฆ‰ 2๊ฐœ์˜ ์Œ์‹์„ 1๊ฐœ์”ฉ ๋‚˜๋ˆ„์–ด ์ค„ ์ˆ˜ ์žˆ์œผ๋‹ˆ, 3์„ 1๋งŒํผ ์ €์žฅํ•œ๋‹ค.

์ด๋Ÿฐ ๊ณผ์ •์„ ๊ฑฐ์ณ์„œ ๋‚˜์˜จ ๊ฐ’์€ '1113' ์ด๋‹ค. ์—ฌ๊ธฐ์— 1113์„ ๋ฐ˜๋Œ€๋กœ ๋‹ค์‹œ ๋ฐฐ์น˜ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฌธ์ž์—ด[::-1] ์„ ์‚ฌ์šฉํ•œ๋‹ค.

์ตœ์ข…์ ์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ๋•Œ ๊ธฐ์กด ๋ฌธ์ž์—ด + 0 + ๊ธฐ์กด ๋ฌธ์ž์—ด[::-1] ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

Solution

def solution(food):
    answer = ''
    for i in range(1, len(food)):
        if food[i] >= 2:  # 2๋กœ ๋‚˜๋ˆ ์•ผ ํ•˜๋ฏ€๋กœ 2๋ณด๋‹ค ์ปค์•ผ ํ•œ๋‹ค.
            for j in range(food[i] // 2):
                answer += str(i)

    return answer + '0' + answer[::-1]

๐Ÿ‘ฉ‍๐Ÿ’ป ํšŒ๊ณ 

์ด์ค‘ for ๋ฌธ ๋ง๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•ด๋„ ๋œ๋‹ค. ์›๋ž˜ ์ด์ค‘ for ๋ฌธ์œผ๋กœ ํ•  ์ƒ๊ฐ์ด ์—†์—ˆ๋Š”๋ฐ, str(food[i] // 2) ๋ผ๊ณ  ํ•˜๋Š” ๋ฐ”๋žŒ์— ๊ฐ’์ด ์ œ๋Œ€๋กœ ์•ˆ ๋‚˜์™€์„œ ๊ฒฐ๊ตญ solution ์ฝ”๋“œ๋ฅผ ์งฐ๋‹ค. 

answer += str(i) * (food[i] // 2)

 

๋‹ค๋ฅธ ํ’€์ด๋ฅผ ๋ดค๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์—ˆ๋‹ค. ๋Œ€๋‹จํ•˜๋‹ค๋Š” ๋ง ๋ฐ–์—๋Š”...

def solution(food):
    answer = ''.join(str(foodNumber) * (quantity // 2) for foodNumber, quantity in enumerate(food))
    return answer + '0' + answer[::-1]

 

728x90