본문 바로가기
728x90

비트마스킹2

[JAVA]백준 1102번: 발전소 https://www.acmicpc.net/problem/1102 1102번: 발전소 은진이는 발전소에서 근무한다. 은진이가 회사에서 잠깐 잘 때마다, 몇몇 발전소가 고장이난다. 게다가, 지금 은진이의 보스 형택이가 은진이의 사무실로 걸어오고 있다. 만약 은진이가 형택이 www.acmicpc.net 1. 문제 설명 고장 나 있지 않은 발전소를 이용해서 고장 난 발전기를 가동할 수 있다. 적어도 P개의 발전소가 고장나 있지 않도록, 발전소를 고치는 비용의 최솟값을 구하는 프로그램을 작성하시오. 2. 풀이 dp와 비트마스킹을 이용해서 풀 수 있다. 현재 켜져있는 발전소 상태를 bit로 표현한다면 아래와 같이 dp로 구현할 수 있다. 현재 꺼져 있는 발전소 X가 있다면 현재 켜져 있는 발전소들 중 X를 키는 .. 2021. 7. 29.
[JAVA]백준 1062번: 가르침 https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net 1. 문제 설명 남극의 단어는 "anta"로 시작되고 "tica"로 끝난다. 김지민 선생님이 K개의 글자를 가르칠 수만 있다고 할 때, 남극의 단어 N개 중 학생들이 읽을 수 있는 단어의 최댓값을 구하는 문제. 2. 풀이 조합과 브루트포스 알고리즘으로 풀 수 있다. 비트 마스킹으로 풀면 더 빨리 풀 수 있는데 아래 코드에서는 배열을 사용하여 현재 배운 단어가 무엇인지 체크했다. 남극의 모든.. 2021. 7. 19.
728x90