728x90 비트마스크2 [python] 백준 9526 1의 개수 세기 https://www.acmicpc.net/problem/9527 9527번: 1의 개수 세기 두 자연수 A, B가 주어졌을 때, A ≤ x ≤ B를 만족하는 모든 x에 대해 x를 이진수로 표현했을 때 1의 개수의 합을 구하는 프로그램을 작성하시오. 즉, f(x) = x를 이진수로 표현 했을 때 1의 개수라 www.acmicpc.net 문제해결 비트마스크 문제라는 것을 바로 알 수 있었다. (이진법을 이용한 1과 0을 이용해서 1의 개수를 세는 것이므로) 이진법에는 패턴이 있다. 0000-> 0001 ->0010->0011 ... (1의 자리수 01010101/ 2의 자리수 00110011 ....) 그 패턴을 써보고 풀어보면 바로 풀 수 있는 문제 CODE import math a, b = map(in.. 2023. 4. 13. [python] 백준 14391 종이 조각 https://www.acmicpc.net/problem/14391 14391번: 종이 조각 영선이는 숫자가 쓰여 있는 직사각형 종이를 가지고 있다. 종이는 1×1 크기의 정사각형 칸으로 나누어져 있고, 숫자는 각 칸에 하나씩 쓰여 있다. 행은 위에서부터 아래까지 번호가 매겨져 있고, www.acmicpc.net 문제 해결 우선 비트마스크에 대해서 알아야 한다. 비트마스크는 숫자를 이진수로 배열함으로써 계산을 더 빠르게 할 수 있고 bool 연산도 빠르게 할 수 있다. (1은 True, 0은 False를 나타낸다.) 비트마스크의 연산은 크게 5가지가 있다. AND 연산 (&) (예시 : 11011 & 10001 = 10001) OR 연산(|) (예시 : 11001 & 10011 = 11011) XOR 연.. 2023. 1. 21. 이전 1 다음 728x90