반응형
출처: https://www.acmicpc.net/problem/3449
Input
4
0
1
000
000
1111111100000000
0000000011111111
101
000
Output
Hamming distance is 1.
Hamming distance is 0.
Hamming distance is 16.
Hamming distance is 2.
최대 100자리이므로 int, long형으로 처리할 수 없기에 문자열로 받아서 처리해야 합니다.
① 두 문자열을 입력 받습니다.
② 문자열의 길이를 구해서 for문으로 한 자리씩 접근합니다.
③ xor 비트 연산을 통해서 해밍 거리를 도출합니다.
#include <stdio.h>
int len(const char *str) {
int ret = 0;
for (;;) {
if (str[ret++] == '\0') break;
}
return ret;
}
char A[100 + 5], B[100 + 5];
int findHamming(const char *a, const char *b) {
int ret = 0;
for (int i = 0; i < len(a); ++i) {
if ((a[i] - '0') ^ b[i] - '0')
ret++;
}
return ret;
}
int main() {
// freopen("input.txt", "r", stdin);
int TC; scanf("%d", &TC);
while (TC--) {
scanf("%s %s", A, B);
printf("Hamming distance is %d.\n", findHamming(A, B));
}
}
반응형
'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글
[BOJ] 백준 2630 색종이 만들기 (0) | 2021.02.17 |
---|---|
[BOJ] 백준 2479 경로 찾기 (0) | 2021.02.17 |
[BOJ] 백준 2666 벽장문의 이동 (0) | 2021.02.17 |
[BOJ] 백준 2668 숫자 고르기 (0) | 2021.02.17 |
[BOJ] 백준 2578 빙고 (0) | 2021.02.17 |
댓글