bitmasking [백준 12833 - Kotlin] XORXORXOR bitmaskingkotlinbitmasking 백준 1480번: 보석 모으기 현재 가방 번호, 현재 가방에 담긴 보석 무게, 지금까지 담은 보석 목록 메모이제이션 ㄱㄱ 이미 담은 보석이거나, 보석 무게가 가방 무게보다 큰 경우는 탐색하지 않는다. 보석 무게가 가방 무게보단 덜 나가지만 지금 가방에 다른 보석이 들어있어서 보석을 넣을 수 없는 경우는 다음 가방으로 넘긴다. 이 때 마지막 가방을 넘어갔을 경우 -1을 반환해서 숫자를 맞춰주는게 포인트. 비트마스킹 DP 푸... bitmaskingpsDPcppDP 백준 3056번: 007 몇번 지미가 미션을 먼저 수행하는지는 신경쓸 필요가 없다. 각 미션의 할당 여부를 비트필드로 나타낸다. 지미 번호를 1씩 키우면서 넘겨준다. 모든 미션을 클리어했을 때 확률 변동이 없어야 하기 때문에 1을 반환한다. 생각해보니까 PS하면서 처음으로 소수점을 다뤄봤다. 라고 써주면 이 다음부터 소수점 6자리씩 나온다. 대박!... bitmaskingpsDPcppDP 백준 1029번: 그림 교환 현재 그림을 가지고 있는 예술가를 X, 그 예술가가 그림을 구매한 가격을 Y, 지금까지 그림을 소유해봤던 예술가의 목록을 Z라 하고 cache[X][Y][Z]에 메모이제이션 ㄱㄱ 그림을 여러번 사도 되는 줄 알았는데 아니었다. 문제를 꼼꼼히 읽도록 하자.... bitmaskingpsDPcppDP 백준 2098번: 외판원 순회 모든 도시를 한 번씩 방문해야 한다. 무조건 첫 번째 도시부터 방문하자. 어차피 모든 도시를 방문해야 하기 때문에 시작하는 도시가 어디인지는 답에 영향을 주지 않는다. visited에 도시 방문 여부를 표시한다. i번째 마을 방문 여부는 visited&(1<<i)으로, 방문 표시는 visited|(1<<i)로 할 수 있다. 모든 도시를 방문한 경우(Base case) 마지막 도시에서 첫 번째... bitmaskingpsDPcppDP
[백준 12833 - Kotlin] XORXORXOR bitmaskingkotlinbitmasking 백준 1480번: 보석 모으기 현재 가방 번호, 현재 가방에 담긴 보석 무게, 지금까지 담은 보석 목록 메모이제이션 ㄱㄱ 이미 담은 보석이거나, 보석 무게가 가방 무게보다 큰 경우는 탐색하지 않는다. 보석 무게가 가방 무게보단 덜 나가지만 지금 가방에 다른 보석이 들어있어서 보석을 넣을 수 없는 경우는 다음 가방으로 넘긴다. 이 때 마지막 가방을 넘어갔을 경우 -1을 반환해서 숫자를 맞춰주는게 포인트. 비트마스킹 DP 푸... bitmaskingpsDPcppDP 백준 3056번: 007 몇번 지미가 미션을 먼저 수행하는지는 신경쓸 필요가 없다. 각 미션의 할당 여부를 비트필드로 나타낸다. 지미 번호를 1씩 키우면서 넘겨준다. 모든 미션을 클리어했을 때 확률 변동이 없어야 하기 때문에 1을 반환한다. 생각해보니까 PS하면서 처음으로 소수점을 다뤄봤다. 라고 써주면 이 다음부터 소수점 6자리씩 나온다. 대박!... bitmaskingpsDPcppDP 백준 1029번: 그림 교환 현재 그림을 가지고 있는 예술가를 X, 그 예술가가 그림을 구매한 가격을 Y, 지금까지 그림을 소유해봤던 예술가의 목록을 Z라 하고 cache[X][Y][Z]에 메모이제이션 ㄱㄱ 그림을 여러번 사도 되는 줄 알았는데 아니었다. 문제를 꼼꼼히 읽도록 하자.... bitmaskingpsDPcppDP 백준 2098번: 외판원 순회 모든 도시를 한 번씩 방문해야 한다. 무조건 첫 번째 도시부터 방문하자. 어차피 모든 도시를 방문해야 하기 때문에 시작하는 도시가 어디인지는 답에 영향을 주지 않는다. visited에 도시 방문 여부를 표시한다. i번째 마을 방문 여부는 visited&(1<<i)으로, 방문 표시는 visited|(1<<i)로 할 수 있다. 모든 도시를 방문한 경우(Base case) 마지막 도시에서 첫 번째... bitmaskingpsDPcppDP