• 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

[๋ฐฑ์ค€] 11256

23 Jan 2021

๋ฐฑ์ค€ 12782

๋ฌธ์ œ ๋งํฌ
๋‚œ์ด๋„ : ์‹ค๋ฒ„5

ํ’€์ด

ํ•ด๋‹น ๋ฌธ์ œ์—์„œ์˜ ์—ฐ์‚ฐ์€ ๋‘ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

  1. 0์„ 1๋กœ, 1์„ 0์œผ๋กœ ๋ฐ”๊พธ๊ฑฐ๋‚˜
  2. ๋‹ค๋ฅธ ์ž๋ฆฌ์˜ ์ˆ˜๋ผ๋ฆฌ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒƒ (0<->1 swap ์—ฐ์‚ฐ)

๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋งŒ์•ฝ ์ž…๋ ฅ๋˜๋Š” ์ฒซ ๋ฒˆ์งธ ์ด์ง„์ˆ˜๋ฅผ origin, ๋‘ ๋ฒˆ์งธ ์ด์ง„์ˆ˜๋ฅผ dest๋กœ origin์—์„œ dest๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ๋ชฉ์ ์œผ๋กœ ํ•˜๊ณ , ์ตœ์†Œํ•œ์˜ ์—ฐ์‚ฐ์œผ๋กœ ๋ฐ”๊พผ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์˜€์„ ๋•Œ, origin๊ณผ dest๊ฐ€ ์ฐจ์ด๊ฐ€ ๋‚˜๋Š” ํŒŒํŠธ๋Š” ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

  1. origin bit๊ฐ€ 0์—์„œ dest bit 1๋กœ ๋ฐ”๋€œ
  2. origin bit๊ฐ€ 1์—์„œ dest bit 0์œผ๋กœ ๋ฐ”๋€œ
    ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๋ฐ–์— ์—†์œผ๋ฏ€๋กœ, ๋งŒ์•ฝ 0์—์„œ 1๋กœ ๋ฐ”๋€Œ๋Š” ํšŸ์ˆ˜๊ฐ€ N1, 1์—์„œ 0์œผ๋กœ ๋ฐ”๋€Œ๋Š” ํšŸ์ˆ˜๊ฐ€ N0์ด๋ผ ์ƒ๊ฐํ•ด๋ณด๋ฉด, SWAP์œผ๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•œ ๋ถ€๋ถ„(abs(N1-N0))์€ ํ•ด๊ฒฐํ•œ ํ›„, ๊ทธ๋ž˜๋„ ๋ฐ”๋€Œ์ง€ ์•Š์•˜๋‹ค๋ฉด ๋น„ํŠธ๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ๋น„ํŠธ๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ฑด N0, N1 ์ค‘์— ์ž‘์€ ์ˆ˜(min(N1,N0))์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋” ํฐ ์ˆ˜์™€ ์ž‘์€ ์ˆ˜์˜ ์ฐจ์ด ๋งŒํผ ์ด๋ฏธ SWAP์œผ๋กœ ๋ฐ”๊ฟจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ฃผ์˜ํ•  ์ ์€ ์‹œ๊ฐ„ ์ œํ•œ์€ 1์ดˆ์ด๋ฉฐ, ์ตœ๋Œ€ 50๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค, ์ตœ๋Œ€ 1,000,000(10^6)๋งŒํผ์˜ N์ด ์ž…๋ ฅ๋ฉ๋‹ˆ๋‹ค. 10^8์˜ ์—ฐ์‚ฐ๋Ÿ‰์ด 1์ดˆ ๊ฐ€๋Ÿ‰ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—, ๋‹จ ํ•œ ๋ฒˆ๋งŒ์— ๋ฐ˜๋“œ์‹œ ๋น„๊ต๋ฅผ ๋๋‚ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ์ฝ”๋“œ๋Š” for loop 1ํšŒ๋งŒ ์ฐฉ์‹คํ•˜๊ฒŒ ์ˆœํšŒํ•˜๋Š” O(N)์œผ๋กœ ์‹œ๊ฐ„ ์ œํ•œ ๋‚ด์— ๋ฐ˜๋“œ์‹œ ํ†ต๊ณผํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ

T = int(input())
for _ in range(T) :
  a, b = input().split()
  N0 = 0
  N1 = 0
  for i in range(len(a)) :
    if(a[i] != b[i] and b[i] == '1') :
      N1 += 1
    elif (a[i] != b[i] and b[i] == '0') :
      N0 += 1
  print(min(N1,N0)+abs(N1-N0))


problem_solvingpython Share Tweet +1