해당 문제는 여기에서 확인하실 수 있습니다.
def count_parity_errors(bit_string):
errors = 0 # 패리티 에러 개수 저장 변수
# 전체 비트 문자열을 8비트씩 나누어 검사
for i in range(0, len(bit_string), 8):
block = bit_string[i:i+8] # 8비트 블록
data_bits = block[:7] # 앞의 7비트 (데이터 비트)
parity_bit = block[7] # 마지막 1비트 (패리티 비트)
# 데이터 비트에서 1의 개수 계산
ones_count = data_bits.count('1')
# 1의 개수가 홀수면 패리티 비트는 1, 짝수면 0
expected_parity = '1' if ones_count % 2 == 1 else '0'
# 실제 패리티 비트와 다르면 에러 발생
if parity_bit != expected_parity:
errors += 1
return errors # 총 패리티 에러 개수 반환
# 입력받을 데이터 줄 수
n = int(input().strip())
# 각 데이터 전송 라인에 대해 패리티 에러 개수 출력
for _ in range(n):
line = input().strip()
print(count_parity_errors(line))