문제풀이/BitMasking 3

[PS] BOJ1052 물병 ( 비트마스킹 ) With JAVA

https://www.acmicpc.net/problem/1052 1052번: 물병 지민이는 N개의 물병을 가지고 있다. 각 물병에는 물을 무한대로 부을 수 있다. 처음에 모든 물병에는 물이 1리터씩 들어있다. 지민이는 이 물병을 또 다른 장소로 옮기려고 한다. 지민이는 한 번 www.acmicpc.net ◎ 문제풀이 비트마스킹을 발상하면 쉽게 풀 수 있는 문제이다. ( 비스트 마스킹 발상이 어렵다.. ) 지민이가 가지고 있는 N개의 물병은 1L 씩 채워져 있고, 2개씩 합쳐서 K개 이하로 만들 때, 구매해야 하는 물병의 개수를 구하는 문제이다. 예를 들어, 지민이가 물병을 13개 가지고 있고 한번에 2개를 옮길 수 있다고 가정해보자. 물병 13개를 합치면 3개의 물병이 남는다. ( 8L, 4L, 1L ..

[PS] BOJ1740 거듭제곱 ( 비트마스킹 ) with JAVA

1740번: 거듭제곱 3의 제곱수를 생각하자. 3의 0제곱, 3의 1제곱, 3의 2제곱, ... 은 순서대로 1, 3, 9, 27, ... 이 된다. 이를 바탕으로, 한 개 이상의 서로 다른 3의 제곱수의 합으로 표현되는 수를 생각할 수 있다. 예를 www.acmicpc.net ◎ 문제풀이 3의 거듭제곱의 합 중 N번째로 작은 수를 구하는 문제이다. 비트마스킹을 처음 풀어본 사람이라면 발상이 어려운 문제이다. 대표적인 거듭제곱의 합은 이진수 표현식이다. 십진수를 이진수로 표현하면 2의 거듭제곱의 합으로 표현할 수 있다. 10101 은 2의 0승, 2의2승, 2의 4승의 합이다. 여기서 2를 3으로 바꾸어주면 3의 거듭제곱의 합으로 바꿀 수 있다. 1 : 1 -> 1 2 : 10 -> 3 3 : 11 ->..

[PS] BOJ1285 동전뒤집기 ( BitMasking ) With JAVA

https://www.acmicpc.net/problem/1285 1285번: 동전 뒤집기 첫째 줄에 20이하의 자연수 N이 주어진다. 둘째 줄부터 N줄에 걸쳐 N개씩 동전들의 초기 상태가 주어진다. 각 줄에는 한 행에 놓인 N개의 동전의 상태가 왼쪽부터 차례대로 주어지는데, 앞면이 위 www.acmicpc.net ◎ 문제풀이 [백준(BOJ)] #1285- 동전 뒤집기 (파이썬, PyPy3) 문제 https://www.acmicpc.net/problem/1285 1285번: 동전 뒤집기 첫째 줄에 20이하의 자연수 N이 주어진다. 둘째 줄부터 N줄에 걸쳐 N개씩 동전들의 초기 상태가 주어진다. 각 줄에는 한 행에 놓인 N개의 동전 c4u-rdav.tistory.com ( 여러 포스팅을 찾아 보았는데 위 ..