ALGOSPOT - HAMMINGCODE
알고리즘/구현문제
https://algospot.com/judge/problem/read/HAMMINGCODE
풀이
단순한 구현문제. 입력이 7자리의 바이너리이므로 char로 받은뒤 int 배열에 넣고 xor을 사용해 syndrome 값을 구했다.
#include <stdio.h> int main(void) { int t; scanf("%d",&t); while(t--){ int i, syn = 0,encoded[8]; char c; for(i=1;i<=7;i++){ scanf(" %c",&c); encoded[i] = c-'0'; } syn += ((encoded[1] ^ encoded[3]) ^ encoded[5]) ^ encoded[7]; syn += 2 * (((encoded[2] ^ encoded[3]) ^ encoded[6]) ^ encoded[7]); syn += 4 * (((encoded[4] ^ encoded[5]) ^ encoded[6]) ^ encoded[7]); encoded[syn] ^= 1; printf("%d%d%d%d\n",encoded[3],encoded[5],encoded[6],encoded[7]); } return 0; }