본문 바로가기
PS 문제 풀이/Baekjoon

[BOJ] 백준 3449 해밍 거리

by 까망 하르방 2021. 2. 17.
반응형

출처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 비트 연산을 통해서 해밍 거리를 도출합니다.

 

비트마스크 (Bitmask) 

 

비트마스크 (Bitmask)

비트마스크 정수의 이진수 표현(Bit)을 자료 구조로 쓰는 기법 현대의 모든 CPU는 이진수를 이용해도 모든 자fy 표현 내부적으로 이진수를 사용하는 컴퓨터들은 이진법 관련 연산들을 아주 빨리

zoosso.tistory.com


#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

댓글