• Home
  • About
    • on Weekend photo

      on Weekend

      ๐™Ž๐™ฉ๐™ช๐™™๐™ฎ๐™ž๐™ฃ๐™œ

    • Learn More
    • Instagram
    • Github
  • Archive
    • All Posts
    • All Tags
    • All Categories
  • Categories
    • Problem Solving
    • TIL
    • Study
    • Etc
    • ํ•„์‚ฌ
  • Projects

[๋ฐฑ์ค€] 1439

23 Jan 2021

๋ฐฑ์ค€ 1439 : ๋’ค์ง‘๊ธฐ

๋ฌธ์ œ ๋งํฌ

ํ’€์ด

์นด์นด์˜ค ๊ณต์ฑ„ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜์˜€๋˜ ๋ฌธ์ž์—ด ์••์ถ•์˜ ์‰ฌ์šด ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

๋งŒ์•ฝ 00111000์ธ ๊ฒฝ์šฐ์˜ ๋’ค์ง‘๊ธฐ ์ˆ˜๋Š”, ์ด์–ด์ ธ์žˆ๋Š” ๋™์ผํ•œ ์ˆ˜(00, 111, 000)์€ ํ•˜๋‚˜์˜ ์ˆ˜(0,1,0)๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ€๋ น 00111000์„ ๋’ค์ง‘๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ค‘๊ฐ„์— ๊ฐ™์€ ์ˆ˜์™€ ์ด์–ด์ง€์ง€ ์•Š์€ 111์„ ๋’ค์ง‘์œผ๋ฉด ๋˜๋“ฏ์ด, 010์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์šฐ์„  ์ด์–ด์ง„ ์ˆ˜๋ฅผ ํ•˜๋‚˜์˜ ์ˆ˜๋กœ ์น˜ํ™˜ํ•˜๋Š” ๋ฌธ์ž์—ด ์••์ถ•์„ ํ•ด์ฃผ๊ณ , 0๊ณผ 1์˜ ๊ฐฏ์ˆ˜๋ฅผ ์„ธ์–ด ๋‘˜ ์ค‘ ๋” ์ž‘์€ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
๋‹จ, ์œ ์˜ํ•ด์•ผํ•  ์ ์€ ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” S๋Š” ์ตœ๋Œ€ 1,000,000์˜ ๊ฐ’์„ ์ง€๋‹™๋‹ˆ๋‹ค. ์ฆ‰ 10^6์œผ๋กœ, ํ•œ ๋ฒˆ์˜ ์ˆœํšŒ(O(N))๋กœ๋งŒ ์ฒ˜๋ฆฌํ•ด์•ผ ์‹œ๊ฐ„์ดˆ๊ณผ๋ฅผ ๋ฐ›์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (10^8์ด ๋Œ€๋žต 1์ดˆ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.)

์ฝ”๋“œ

S = input()
ans = ""
N0 = 0
N1 = 0

for i in range(1, len(S)) :
  if(S[i-1] != S[i]) :
    ans += S[i-1]
    if(S[i-1] == "0") : N0+=1
    else : N1+=1
if(ans and (S[len(S)-1] != ans[len(ans)-1])) :
  ans+=S[len(S)-1]
  if(S[len(S)-1] == "0") : N0+=1
  else : N1+=1

print(min(N0,N1))

ํ•ด๋‹น ์ฝ”๋“œ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ํ•œ ๋ฒˆ ์ˆœํšŒํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋๋‚˜๋ฏ€๋กœ, O(N)์ž…๋‹ˆ๋‹ค.



problem_solvingpython Share Tweet +1