๐ฉ๐ปโ๐ป๋ฌธ์ ์ค๋ช
[์ด์ฝํ
Ch11-3] ๋ฌธ์์ด ๋ค์ง๊ธฐ (๊ทธ๋ฆฌ๋)
๋ค์์ด๋ 0๊ณผ 1๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด S๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ค์์ด๋ ์ด ๋ฌธ์์ด S์ ์๋ ๋ชจ๋ ์ซ์๋ฅผ ์ ๋ถ ๊ฐ๊ฒ ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค. ๋ค์์ด ํ ์ ์๋ ํ๋์ S์์ ์ฐ์๋ ํ๋ ์ด์์ ์ซ์๋ฅผ ์ก๊ณ ๋ชจ๋ ๋ค์ง๋ ๊ฒ์
๋๋ค.
์๋ฅผ ๋ค์ด S = 0001100์ผ ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ ์ฒด๋ฅผ ๋ค์ง์ผ๋ฉด 1110011์ด ๋๋ค.
- 4๋ฒ์งธ ๋ฌธ์๋ฌดํฐ 5๋ฒ์งธ ๋ฌธ์๊น์ง ๋ค์ง์ผ๋ฉด 1111111์ด ๋์ด์ ๋๋ฒ๋ง์ ๋ชจ๋ ๊ฐ์ ์ซ์๋ก ๋ง๋ค ์ ์๋ค.
ํ์ง๋ง, ์ฒ์๋ถํฐ 4, 5๋ฒ์งธ ๋ฌธ์๋ฅผ ๋ค์ง์์ผ๋ฉด ํ๋ฒ์ 0000000์ด ๋์ด์ 1๋ฒ๋ง์ ๋ชจ๋ ๊ฐ์ ์ซ์๋ก ๋ง๋ค ์ ์์ต๋๋ค.
๋ฌธ์์ด S๊ฐ ์ฃผ์ด์ก์ ๋, ๋ค์์ด๊ฐ ํด์ผํ๋ ํ๋์ ์ต์ ํ์๋ฅผ ์ถ๋ ฅํ์์ค.
์ ๋ ฅ์กฐ๊ฑด
- ์ฒซ์งธ ์ค์ 0๊ณผ 1๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด S๊ฐ ์ฃผ์ด์ง๋๋ค. S์ ๊ธธ์ด๋ 100๋ง๋ณด๋ค ์์ต๋๋ค.
์ถ๋ ฅ์กฐ๊ฑด
- ์ฒซ์งธ์ค์ ๋ค์์ด๊ฐ ํด์ผํ๋ ํ๋์ ์ต์ ํ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
์
๋ ฅ์์
0001100
์ถ๋ ฅ์์
1
โ๏ธIdea Sketch
๋ฌธ์ ์์ฝ
0๊ณผ 1 ์ซ์๋ก ์ด๋ค์ง ๋ฌธ์์ด S
๋ชจ๋ ์ซ์๋ฅผ ์ ๋ถ ๊ฐ๊ฒ ๋ง๋ค๊ธฐ
๋ค์ง๋ ํ๋์ ์ต์ ํ์๋ฅผ ๊ตฌํ๋ผ
0) 0001100
1) ์ ์ฒด ๋ค์ง๊ธฐ 1110011
2) ์ผ๋ถ ๋ค์ง๊ธฐ 1111111
=> ์ด 2ํ
0) 0001100
1) ์ผ๋ถ ๋ค์ง๊ธฐ 0000000
=> ์ด 1ํ
์๊ฐ๋ณต์ก๋
O(n) --> S์ ๊ธธ์ด๋ 100๋ง๋ณด๋ค ์์ --> ์๊ฐ ์ด๊ณผX
for๋ฌธ์ผ๋ก ๋ฌธ์์ด S๋ฅผ ์์ฐจํ์ํ๋ฏ๋ก O(n)์ด๋ค. S์ ๊ธธ์ด๋ 100๋ง๋ณด๋ค ์์ 1์ต์ ๋ชป ๋ฏธ์น๋ฏ๋ก ์๊ฐ์ด๊ณผ ๊ฑฑ์ ์ ์๋ค.
์๊ณ ๋ฆฌ์ฆ : ๊ทธ๋ฆฌ๋
๋ฌธ์ ์์ ์ฃผ์ด์ง ๋๋ก ๊ตฌํํ์ง ์๋๋ค. ๋ฌธ์ ์์๋ ์ ์ฒด๋ฅผ ๋ค์ง๋ ๊ฒฝ์ฐ/์ผ๋ถ๋ฅผ ๋ค์ง๋ ๊ฒฝ์ฐ๋ฅผ ๋ณด์ฌ์ฃผ์์ง๋ง ์ด๋ฅผ ๊ณ ๋ คํ์ง ์๋๋ค. ์ฐฝ์๋ ฅ, ์ฆ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํ ์์ด๋์ด๋ฅผ ๋ ์ฌ๋ฆฌ๋ ๋ฅ๋ ฅ์ด ํ์ํ ๋ฌธ์ ์ด๋ค.
- ์ฐ์๋ 0๊ณผ ์ฐ์๋ 1์ ๊ฐ์๋ฅผ ๊ตฌํ๋ค.
- ๋ ์ค์ ๋ ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
โ๏ธ๋ด ์์ค์ฝ๋
- ์ฐ์๋ 0๊ณผ ์ฐ์๋ 1์ ๊ฐ์๋ฅผ ๊ตฌํ๋ค.
- cnt ๋ฐฐ์ด์ ์ธ๋ฑ์ค 0๋ฒ์งธ์๋ ์ฐ์๋ 0์ ๊ฐ์๋ฅผ ์ ์ฅํ๊ณ , ์ธ๋ฑ์ค 1๋ฒ์งธ์๋ ์ฐ์๋ 1์ ๊ฐ์๋ฅผ ์ ์ฅํ๋ค.
- ๋ฌธ์ x๊ฐ ์ด์ ๊ฐ tmp์ ๋ค๋ฅธ ๊ฒฝ์ฐ (์ฐ์ํ์ง ์์ ๊ฒฝ์ฐ) cnt์ tmp๋ฅผ ๊ฐฑ์ ํ๋ค.
- ๋ ์ค์ ๋ ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
import sys
si = sys.stdin.readline
s = si().rstrip()
cnt = [0, 0]
tmp = -1
for x in map(int, s):
if x != tmp:
cnt[x] += 1
tmp = x
print(min(cnt))