๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/70129
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
ํ์ด
# ํ๋ก๊ทธ๋๋จธ์ค 2๋จ๊ณ - 2018์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง1 - ์ด์ง ๋ณํ ๋ฐ๋ณตํ๊ธฐ
def solution(s):
answer = []
countZero = 0 # ์ ๊ฑฐ๋ 0์ ๊ฐ์
countBinary = 0 # ์ด์ง ๋ณํ ํ์
while True:
if s == '1': # s๊ฐ 1์ด ๋์์๋ ์ค๋จ
break
countBinary += 1 # ์ด์ง ๋ณํ์ ํ์์ผ๋ฏ๋ก +1
countZero += s.count('0') # ์ด์ง์์ ์๋ 0์ ๊ฐ์๋ฅผ ์
s = s.replace('0', '') # 0์ ์์ ์ฃผ๊ธฐ
newLength = len(s) # ์ด์ง ๋ณํ๋ ์์ ๊ธธ์ด ์ ์ฅ
s = bin(newLength)[2:] # ์ด์ง ๋ณํํ๋ ํจ์๋ฅผ ํตํด 0b~~๋ก ๋์ค๋ฏ๋ก ์์ 2๊ฐ๋ ๋นผ๊ณ ์ฌ๋ผ์ด์ฑ
return [countBinary, countZero] # ์ด์ง๋ณํํ์, ์์ค 0์ ๊ฐ์
์กฐ๊ฑด
1. ๋ฌธ์์ด์ ์๋ ๋ชจ๋ 0 ์ ๊ฑฐ
2. ์ ๊ฑฐ ํ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ์ด์ง๋ฒ์ผ๋ก ํํ
3. ๋ฌธ์์ด์ด 1์ด ๋๋ฉด ์ค๋จ
๋์ ํ์ด
1. ๋ฌดํ๋ฃจํ๋ฅผ ๋๋ฉด์ ๋ฌธ์์ด์ด 1์ด ๋์์ ๋ ์ค๋จ์ํค๋๋ก ํ๋ค.
2. ๋ฐ๋ณต๋ฌธ์ ๋ค์ด์ค๋ฉด ์ด์ง ๋ณํ์ ํ๋ ๊ฒ์ด๋ฏ๋ก ์ด์ง ๋ณํ ํ์ + 1
3. ๋ฌธ์์ด์ ์๋ 0์ ๊ฐ์๋ฅผ ์ผ๋ค ( 0์ ์์ค ๊ฐ์๋ฅผ ์ธ์ผ ํ๊ธฐ ๋๋ฌธ)
4. 0์ ์์ ์ค๋ค.
5. ๋ณํ๋ ์์ ๊ธธ์ด ์ ์ฅ
6. bin ํจ์๋ฅผ ํตํด ์ด์ง์๋ก ๋ณํํ๋๋ฐ 0b~~๋ก ๋์ค๋ฏ๋ก 2๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ ์ฌ๋ผ์ด์ฑ
๋ฐ๋ณต