비트마스킹 BOJ11726 비트마스킹 정리 ^ : XOR ~ : 반전(NOT) << : Shift (왼쪽으로 이동) >> : Shift (오른쪽으로 이동) 정처기 공부할때 봤던건데, 그땐 이게 언제쓰일 수 있을까 몰랐었다. 찾아보니 DP에도 쓰일 수 있다고 한다. 끝이 없구나 😨... 비트마스킹비트마스킹 백준 1094번 막대기 파이썬 비트마스킹을 어떻게 하는지 몰라서 그냥 풀었다.. n = 23 이라고 가정 일단은 res에 64를 포함 그리고 64를 2로 나눔 -> 32 32 >= 23 이기때문에 res에 32를 넣음 그리고 32를 pop 32 를 2로 나눔 -> 16 16 < 23 이기때문에 res에 16,16 두개를 넣음 이런식으로 계속 나눠서 res에 총합이 n 이 될때까지 반복함 하지만 이문제는 2진수에서 1의 개... 파이썬알고리즘실버비트마스킹비트마스킹 [알고리즘 기법] 비트필드를 이용한 DP 스핑크스의 유명한 수수께끼 "목소리는 같지만 발이 4개가 되기도 하고 2개가 되기도 하고 3개가 되기도 하는 것은 무엇인가?"에 대한 다른 답안을 생각해볼 수 있는가? 개인적으로는 아래 사진과 같이 카메라도 해답이 될 수 있다고 생각한다. S가 될 수 있는지 묻는 문제가 있다고 하자. N이 너무 크지 않다면 비트연산을 통한 완전탐색을 생각해볼 수 있다. [1<<0,1<<N)까지의 숫자를 사용... 비트필드DP알고리즘 기법비트마스킹DP [백준] 14391번 - 종이 조각 Python, Java 문제 영선이는 숫자가 쓰여 있는 직사각형 종이를 가지고 있다. 종이는 1×1 크기의 정사각형 칸으로 나누어져 있고, 숫자는 각 칸에 하나씩 쓰여 있다. 행은 위에서부터 아래까지 번호가 매겨져 있고, 열은 왼쪽부터 오른쪽까지 번호가 매겨져 있다. 영선이는 직사각형을 겹치지 않는 조각으로 자르려고 한다. 각 조각은 크기가 세로나 가로 크기가 1인 직사각형 모양이다. 길이가 N인 조각은 N자리 수... 비트마스킹백준브루트 포스백준 백준 11723 - 집합(실버5) 백준 11723 - 집합 처음에는 문제 이름부터 집합이니 그냥 set을 사용해야겠다고 생각했으나 시간초과가 났다. 그래서 원소가 20개이니, 배열을 만들어서 원소가 집합에 들어있으면 그 원소를 인덱스로 가지는 곳을 1로 만들고 들어있지 않다면 0으로 세팅했다.... 알고리즘11723백준비트마스킹11723 [ BOJ / Python ] 20304번 비밀번호 제작 이번 문제는 너비우선탐색과 비트마스킹을 함께 사용하여 풀이하였다. 혼자의 힘으로는 접근하기에 어려웠기 때문에 구글링의 힘을 빌려서 해결하였다. 이 문제에서의 핵심은 (시도한 비밀번호) XOR (1이 k개 들어간 임의의 bit) = 비밀번호 후보를 통해 얻은 비밀번호 후보를 사용하여 (비밀번호 후보) XOR (시도한 비밀번호) = 1이 k개 들어간 임의의 bit를 다시 구하게 되고 이때 임의의... BFS비트마스킹pythonbojBFS [C++] 백준 1102번: 발전소 문제 링크 문제 요약 발전기들로 이루어진 그래프가 주어진다. 이 그래프에서 발전기들은 켜져 있거나 꺼져 있다. 꺼져 있는 발전기는, 인접한 켜져 있는 발전기로 켤 수 있다. 발전기를 켤 때는 비용이 든다. 이 그래프에서 최소한 P개의 발전기가 켜져 있도록 하기 위한 최소 비용을 구해야 한다. 접근 방법 비트마스킹 DP 문제였습니다. 켜져 있는 발전기의 수를 센 다음에, 이 수가 P와 같아질 ... 다이나믹 프로그래밍백준비트마스킹다이나믹 프로그래밍
BOJ11726 비트마스킹 정리 ^ : XOR ~ : 반전(NOT) << : Shift (왼쪽으로 이동) >> : Shift (오른쪽으로 이동) 정처기 공부할때 봤던건데, 그땐 이게 언제쓰일 수 있을까 몰랐었다. 찾아보니 DP에도 쓰일 수 있다고 한다. 끝이 없구나 😨... 비트마스킹비트마스킹 백준 1094번 막대기 파이썬 비트마스킹을 어떻게 하는지 몰라서 그냥 풀었다.. n = 23 이라고 가정 일단은 res에 64를 포함 그리고 64를 2로 나눔 -> 32 32 >= 23 이기때문에 res에 32를 넣음 그리고 32를 pop 32 를 2로 나눔 -> 16 16 < 23 이기때문에 res에 16,16 두개를 넣음 이런식으로 계속 나눠서 res에 총합이 n 이 될때까지 반복함 하지만 이문제는 2진수에서 1의 개... 파이썬알고리즘실버비트마스킹비트마스킹 [알고리즘 기법] 비트필드를 이용한 DP 스핑크스의 유명한 수수께끼 "목소리는 같지만 발이 4개가 되기도 하고 2개가 되기도 하고 3개가 되기도 하는 것은 무엇인가?"에 대한 다른 답안을 생각해볼 수 있는가? 개인적으로는 아래 사진과 같이 카메라도 해답이 될 수 있다고 생각한다. S가 될 수 있는지 묻는 문제가 있다고 하자. N이 너무 크지 않다면 비트연산을 통한 완전탐색을 생각해볼 수 있다. [1<<0,1<<N)까지의 숫자를 사용... 비트필드DP알고리즘 기법비트마스킹DP [백준] 14391번 - 종이 조각 Python, Java 문제 영선이는 숫자가 쓰여 있는 직사각형 종이를 가지고 있다. 종이는 1×1 크기의 정사각형 칸으로 나누어져 있고, 숫자는 각 칸에 하나씩 쓰여 있다. 행은 위에서부터 아래까지 번호가 매겨져 있고, 열은 왼쪽부터 오른쪽까지 번호가 매겨져 있다. 영선이는 직사각형을 겹치지 않는 조각으로 자르려고 한다. 각 조각은 크기가 세로나 가로 크기가 1인 직사각형 모양이다. 길이가 N인 조각은 N자리 수... 비트마스킹백준브루트 포스백준 백준 11723 - 집합(실버5) 백준 11723 - 집합 처음에는 문제 이름부터 집합이니 그냥 set을 사용해야겠다고 생각했으나 시간초과가 났다. 그래서 원소가 20개이니, 배열을 만들어서 원소가 집합에 들어있으면 그 원소를 인덱스로 가지는 곳을 1로 만들고 들어있지 않다면 0으로 세팅했다.... 알고리즘11723백준비트마스킹11723 [ BOJ / Python ] 20304번 비밀번호 제작 이번 문제는 너비우선탐색과 비트마스킹을 함께 사용하여 풀이하였다. 혼자의 힘으로는 접근하기에 어려웠기 때문에 구글링의 힘을 빌려서 해결하였다. 이 문제에서의 핵심은 (시도한 비밀번호) XOR (1이 k개 들어간 임의의 bit) = 비밀번호 후보를 통해 얻은 비밀번호 후보를 사용하여 (비밀번호 후보) XOR (시도한 비밀번호) = 1이 k개 들어간 임의의 bit를 다시 구하게 되고 이때 임의의... BFS비트마스킹pythonbojBFS [C++] 백준 1102번: 발전소 문제 링크 문제 요약 발전기들로 이루어진 그래프가 주어진다. 이 그래프에서 발전기들은 켜져 있거나 꺼져 있다. 꺼져 있는 발전기는, 인접한 켜져 있는 발전기로 켤 수 있다. 발전기를 켤 때는 비용이 든다. 이 그래프에서 최소한 P개의 발전기가 켜져 있도록 하기 위한 최소 비용을 구해야 한다. 접근 방법 비트마스킹 DP 문제였습니다. 켜져 있는 발전기의 수를 센 다음에, 이 수가 P와 같아질 ... 다이나믹 프로그래밍백준비트마스킹다이나믹 프로그래밍