์ฝ๋ฉ ํ ์คํธ ์ฐ์ต - ์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ1
<์ด์ง ๋ณํ ๋ฐ๋ณตํ๊ธฐ>
๋ฌธ์ ์ค๋ช
0๊ณผ 1๋ก ์ด๋ฃจ์ด์ง ์ด๋ค ๋ฌธ์์ด x์ ๋ํ ์ด์ง ๋ณํ์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํฉ๋๋ค.
1. x์ ๋ชจ๋ 0์ ์ ๊ฑฐํฉ๋๋ค.
2. x์ ๊ธธ์ด๋ฅผ c๋ผ๊ณ ํ๋ฉด, x๋ฅผ c๋ฅผ 2์ง๋ฒ์ผ๋ก ํํํ ๋ฌธ์์ด๋ก ๋ฐ๊ฟ๋๋ค.
์๋ฅผ ๋ค์ด, x = "0111010"์ด๋ผ๋ฉด, x์ ์ด์ง ๋ณํ์ ๊ฐํ๋ฉด x = "0111010" -> "1111" -> "100" ์ด ๋ฉ๋๋ค.
0๊ณผ 1๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. s๊ฐ 1์ด ๋ ๋๊น์ง ๊ณ์ํด์ s์ ์ด์ง ๋ณํ์ ๊ฐํ์ ๋, ์ด์ง ๋ณํ์ ํ์์ ๋ณํ ๊ณผ์ ์์ ์ ๊ฑฐ๋ ๋ชจ๋ 0์ ๊ฐ์๋ฅผ ๊ฐ๊ฐ ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- s์ ๊ธธ์ด๋ 1 ์ด์ 150,000 ์ดํ์ ๋๋ค.
- s์๋ '1'์ด ์ต์ ํ๋ ์ด์ ํฌํจ๋์ด ์์ต๋๋ค.
๋ฌธ์ ํ์ด
- my solution
def solution(s):
answer = []
zero=0
turn=0
while(s!="1"):
zero+=s.count("0") #0์ ๊ฐ์ count
temp=s.count("1")
s=format(temp,'b') # 1์ ๊ฐ์๋ฅผ ์ด์ง ๋ณํ
turn+=1
answer.append(turn)
answer.append(zero)
return answer
๋ฌธ์ ์์ ์ํ๋ ๊ฒ์ ์ด์ง ๋ณํ์ ํ์์ ๊ทธ ๊ณผ์ ์์ ์ ๊ฑฐ๋ 0์ ๊ฐ์
1) s๊ฐ 1์ด ์๋ ๋ ๊ณ์ ๋ฐ๋ณต
1-1) 0์ ๊ฐ์ count
1-2) 1์ ๊ฐ์๋ฅผ ์ด์ง ๋ณํ
1-3) ์ด์ง ๋ณํ ํ์ +1
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://programmers.co.kr/learn/challenges
'๐Algorithm > ๐ฅprogrammers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[programmers] ์์ด ๋๋ง์๊ธฐ - Summer/Winter Coding(~2018) (0) | 2021.01.12 |
---|---|
[programmers] ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ - 2017 ํ์คํ์ด (0) | 2021.01.11 |
[programmers] ์์ฐ - Summer/Winter Coding(~2018) (0) | 2021.01.11 |
[programmers] ๋ด์ - ์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ1 (0) | 2021.01.11 |
[programmers] 3์ง๋ฒ ๋ค์ง๊ธฐ - ์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ1 (0) | 2021.01.11 |