ํŒŒ์ด์ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜

[์ด์ฝ”ํ…Œ Ch11-3] ๋ฌธ์ž์—ด ๋’ค์ง‘๊ธฐ (๊ทธ๋ฆฌ๋””)

์€์ง„ 2022. 3. 8. 23:10

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป๋ฌธ์ œ์„ค๋ช…

[์ด์ฝ”ํ…Œ Ch11-3] ๋ฌธ์ž์—ด ๋’ค์ง‘๊ธฐ (๊ทธ๋ฆฌ๋””)
์ด์ฝ”ํ…Œ

๋‹ค์†œ์ด๋Š” 0๊ณผ 1๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด S๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์†œ์ด๋Š” ์ด ๋ฌธ์ž์—ด S์— ์žˆ๋Š” ๋ชจ๋“  ์ˆซ์ž๋ฅผ ์ „๋ถ€ ๊ฐ™๊ฒŒ ๋งŒ๋“ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์†œ์ด ํ•  ์ˆ˜ ์žˆ๋Š” ํ–‰๋™์€ S์—์„œ ์—ฐ์†๋œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ˆซ์ž๋ฅผ ์žก๊ณ  ๋ชจ๋‘ ๋’ค์ง‘๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด S = 0001100์ผ ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.


  1. ์ „์ฒด๋ฅผ ๋’ค์ง‘์œผ๋ฉด 1110011์ด ๋œ๋‹ค.
  2. 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์–ต์— ๋ชป ๋ฏธ์น˜๋ฏ€๋กœ ์‹œ๊ฐ„์ดˆ๊ณผ ๊ฑฑ์ •์€ ์—†๋‹ค.


์•Œ๊ณ ๋ฆฌ์ฆ˜ : ๊ทธ๋ฆฌ๋””

๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ๋Œ€๋กœ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ฌธ์ œ์—์„œ๋Š” ์ „์ฒด๋ฅผ ๋’ค์ง‘๋Š” ๊ฒฝ์šฐ/์ผ๋ถ€๋ฅผ ๋’ค์ง‘๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ณด์—ฌ์ฃผ์—ˆ์ง€๋งŒ ์ด๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ฐฝ์˜๋ ฅ, ์ฆ‰ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•œ ์•„์ด๋””์–ด๋ฅผ ๋– ์˜ฌ๋ฆฌ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•œ ๋ฌธ์ œ์ด๋‹ค.

  1. ์—ฐ์†๋œ 0๊ณผ ์—ฐ์†๋œ 1์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.
  2. ๋‘˜ ์ค‘์— ๋” ์ž‘์€ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.


โœ๏ธ๋‚ด ์†Œ์Šค์ฝ”๋“œ

  1. ์—ฐ์†๋œ 0๊ณผ ์—ฐ์†๋œ 1์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.
    • cnt ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค 0๋ฒˆ์งธ์—๋Š” ์—ฐ์†๋œ 0์˜ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ณ , ์ธ๋ฑ์Šค 1๋ฒˆ์งธ์—๋Š” ์—ฐ์†๋œ 1์˜ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅํ•œ๋‹ค.
    • ๋ฌธ์ž x๊ฐ€ ์ด์ „๊ฐ’ tmp์™€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ (์—ฐ์†ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ) cnt์™€ tmp๋ฅผ ๊ฐฑ์‹ ํ•œ๋‹ค.
  2. ๋‘˜ ์ค‘์— ๋” ์ž‘์€ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
  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))