백준(Python) 풀이/그리디 알고리즘

백준(Python) 12782번 비트 우정지수 풀이

개발윗미 2021. 12. 14. 12:04

Python으로 구현한 12782번 비트 우정지수 문제 풀이입니다.

 

https://www.acmicpc.net/problem/12782

 

12782번: 비트 우정지수

진홍이는 숫자를 좋아한다. 오늘도 숫자를 가지고 놀던 진홍이는 두 숫자의 비트 우정지수를 구해보았다. 비트 우정지수란, 10진법으로 나타낸 두 정수를 이진수로 나타내었을 때, 두 숫자를 같

www.acmicpc.net


t = int(input())

for _ in range(t) :
  n, m = input().split()
  count_1 = 0
  count_0 = 0

  for i in range(len(m)) :
    if n[i] != m[i] :
      if m[i] == '1' :
        count_1 += 1
      else :
        count_0 += 1

  print(max(count_1, count_0))

 

1. 이진수 n과 m을 입력받고 반복문을 통해 문자열 n과 m의 문자를 하나씩 확인한다.

 

2. 현재 확인하고 있는 n의 문자와 m의 문자가 다를 경우 m을 기준으로 잡고 다시 조건문을 수행한다.

 

3. 현재 확인하고 있는 m의 문자가 1일 경우 count_1을 1 증가시키고 0일 경우 count_0을 1 증가시킨다.

 

4. 반복문이 종료되면 최종적으로 count_1과 count_0 중에 최댓값을 구해 비트 우정지수를 출력한다.