Algorithm Problem/Python

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ด์ง„ ๋ณ€ํ™˜ ๋ฐ˜๋ณตํ•˜๊ธฐ(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1)

deo2kim 2021. 9. 1. 10:12
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

  1. '0'์ด ์ œ๊ฑฐ๋œ ๊ฐฏ์ˆ˜๋„ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— '0'์˜ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅ
  2. s์˜ ๊ธธ์ด์—์„œ 0์˜ ๊ฐœ์ˆ˜๋ฅผ ๋นผ์ฃผ๋ฉด '1'๋กœ ๊ตฌ์„ฑ๋œ s์˜ ๊ธธ์ด๊ฐ€ ๋‚˜์˜ด
  3. ๊ทธ ๊ธธ์ด๋ฅผ 2์ง„๋ฒ•์œผ๋กœ ํ‘œํ˜„
  4. 1-3 ๋ฐ˜๋ณต

 

๐Ÿ’จ ์•„๋งˆ ์›”์ฝ”์ฑŒ 1๋ฒˆ ๋ฌธ์ œ์˜€๋˜๊ฑฐ ๊ฐ™๋‹ค.

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

def solution(s):
    cnt, removed_zero_cnt = 0, 0
    while s != '1':
        # 1. x์˜ ๋ชจ๋“  0์„ ์ œ๊ฑฐํ•œ๋‹ค.
        zero_cnt = s.count('0')
        
        # 2. x์˜ ๊ธธ์ด๋ฅผ c๋ผ๊ณ  ํ•˜๋ฉด, x๋ฅผ "c๋ฅผ 2์ง„๋ฒ•์œผ๋กœ ํ‘œํ˜„ํ•œ ๋ฌธ์ž์—ด"๋กœ ๋ฐ”๊พผ๋‹ค.
        s = bin(len(s) - zero_cnt)[2:]
        cnt += 1
        removed_zero_cnt += zero_cnt


    return [cnt, removed_zero_cnt]

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

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

 

๋ฐ˜์‘ํ˜•