๋ฌธ์ ์ค๋ช
0๊ณผ 1๋ก ์ด๋ฃจ์ด์ง ์ด๋ค ๋ฌธ์์ด x์ ๋ํ ์ด์ง ๋ณํ์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํฉ๋๋ค.
- x์ ๋ชจ๋ 0์ ์ ๊ฑฐํฉ๋๋ค.
- 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'์ด ์ต์ ํ๋ ์ด์ ํฌํจ๋์ด ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
s | result |
"110010101001" | [3,8] |
"01110" | [3,3] |
"1111111" | [4,1] |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- "110010101001"์ด "1"์ด ๋ ๋๊น์ง ์ด์ง ๋ณํ์ ๊ฐํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํ์ฐจ | ์ด์ง ๋ณํ ์ด์ | ์ ๊ฑฐํ 0์ ๊ฐ์ | 0์ ๊ฑฐ ํ ๊ธธ์ด | ์ด์ง ๋ณํ ๊ฒฐ๊ณผ |
1 | "110010101001" | 6 | 6 | "110" |
2 | "110" | 1 | 2 | "10" |
3 | "10" | 1 | 1 | "1" |
- 3๋ฒ์ ์ด์ง ๋ณํ์ ํ๋ ๋์ 8๊ฐ์ 0์ ์ ๊ฑฐํ์ผ๋ฏ๋ก, [3,8]์ return ํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- "01110"์ด "1"์ด ๋ ๋๊น์ง ์ด์ง ๋ณํ์ ๊ฐํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํ์ฐจ | ์ด์ง ๋ณํ ์ด์ | ์ ๊ฑฐํ 0์ ๊ฐ์ | 0 ์ ๊ฑฐ ํ ๊ธธ์ด | ์ด์ง ๋ณํ ๊ฒฐ๊ณผ |
1 | "01110" | 2 | 3 | "11" |
2 | "11" | 0 | 2 | "10" |
3 | "10" | 1 | 1 | "1" |
- 3๋ฒ์ ์ด์ง ๋ณํ์ ํ๋ ๋์ 3๊ฐ์ 0์ ์ ๊ฑฐํ์ผ๋ฏ๋ก, [3,3]์ return ํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #3
- "1111111"์ด "1"์ด ๋ ๋๊น์ง ์ด์ง ๋ณํ์ ๊ฐํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํ์ฐจ | ์ด์ง ๋ณํ ์ด์ | ์ ๊ฑฐํ 0์ ๊ฐ์ | 0 ์ ๊ฑฐ ํ ๊ธธ์ด | ์ด์ง ๋ณํ ๊ฒฐ๊ณผ |
1 | "1111111" | 0 | 7 | "111" |
2 | "111" | 0 | 3 | "11" |
3 | "11" | 0 | 2 | "10" |
4 | "10" | 1 | 1 | "1" |
- 4๋ฒ์ ์ด์ง ๋ณํ์ ํ๋ ๋์ 1๊ฐ์ 0์ ์ ๊ฑฐํ์ผ๋ฏ๋ก, [4,1]์ return ํด์ผ ํฉ๋๋ค.
ํ์ด ์ฝ๋
def solution(s):
answer = [0, 0]
while s != '1':
answer[0] += 1
whole = len(s)
s = ''.join(s.split('0'))
one = len(s)
answer[1] += (whole - one)
s = bin(one)[2:]
return answer
split ํจ์์ ํน์ฑ์ ์ด์ฉํ๋ค.
0์ ๋ชจ๋ ์ ๊ฑฐ ํ๋ฏ๋ก, 0์ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ ๋๋ ๋ค์ ๋ถ์ด๋ฉด 1๋ง ๋จ์ ๋ฌธ์์ด์ด ์์ฑ๋ ๊ฒ์ด๋ค.
๋ฌธ์ ์ ํน์ฑ์ 1๋ง ๋จ์ ๋ฌธ์์ด์ '๊ธธ์ด'๋ง ํ์ํ๋ฏ๋ก, ๊ตณ์ด split ๋ง๊ณ count๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ๋์ฑ ํจ์จ์ ์ผ ๊ฒ์ด๋ผ๊ณ ์๊ฐ๋๋ค.
์ ๊ฑฐํ 0์ ๊ฐ์๋, ์ ๊ฑฐํ๊ธฐ ์ด์ ๊ธธ์ด - ์ ๊ฑฐํ ํ 1๋ก๋ง ์ด๋ค์ง ํ ์คํธ์ ๊ธธ์ด๋ฅผ ํด์ ๊ตฌํ ์ ์๋ค.
10์ง์๋ฅผ 2์ง์๋ก ๋ง๋๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค.
ํ์ด์ฌ์์ ์ ๊ณตํ๋ bin ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋๋ฐ,
bin ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์์ '0b'๋ผ๋ ๋ฌธ์๊ฐ ๋ถ์ string type์ด ๋ฆฌํด๋๋ค.
๋ฐ๋ผ์ ์ฌ๋ผ์ด์ฑ์ ํตํด ์์ '0b'๋ฅผ ์ ๊ฑฐํ ๊ฐ์ s ์ ๊ฐฑ์ ํด์ค๋ค.
'๐ ์ฝ๋ฉํ ์คํธ ๋๋น : PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์ซ์์ ํํ (level2, python) (0) | 2022.09.08 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฌ๋ฐ๋ฅธ ๊ดํธ (level2, python) (0) | 2022.09.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ต์๊ฐ ๋ง๋ค๊ธฐ (level2, python) (0) | 2022.09.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ (level2, python) (0) | 2022.09.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ต๋๊ฐ๊ณผ ์ต์๊ฐ (level2, python) (0) | 2022.09.08 |