일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- JPA
- dataframe
- 다익스트라
- 자바
- DP
- 헥사고날 아키텍처
- Redis
- 위상정렬
- ddd
- 비트마스크
- 데이터 flow
- docker
- 포트앤어댑터 아키텍처
- 세그먼트 트리
- 파이썬
- 문자열
- UML
- 백준
- BFS
- 이펙티브 자바
- 스프링
- java
- dfs
- disjoint set
- springboot
- 알고리즘
- series
- pandas
- equals
- spring security
- Today
- Total
목록비트마스크 (2)
코딩못하는사람
https://www.acmicpc.net/problem/1086 1.접근 방문했던곳들의 상태를 표기하기 쉽도록 비트마스크를 사용하고 n이 15일때 15!로 숫자가 크므로 DP를 사용해줘야 한다. 2.풀이 분모를 N!,분자를 k로 나눠떨어지는 경우의 수로 두는 문제이다.그래서 나는 DP배열을 DP[방문한곳][현재 나머지]로 만들고 DP[방문한곳][현재 나머지]=방문할 수 있는 곳들에서의 경우의 수 합 으로 점화식을 만들었다.그렇게 DFS를 사용하여 방문했던 곳이 나오면 그대로 값을 리턴하고 만약 모든 곳을 방문하고 나머지가 0일 때는 1을 리턴해주는 함수DFS를 만들었다. 나머지는 (이번에 추가하는 숫자*10**현재수의 길이) 현재 나머지를 더하고 k로 나눠주면서 저장하면 된다. DP를 0으로 초기화 해..
비트 마스크란? 비트는 컴퓨터에서 다루는 최소 단위이다. 정수를 이진수로 표현, 비트 연산을 통해 문제를 해결해 나가는 기술을 비트마스크 라고 한다 프로그래밍을 하며 비트마스크가 왜 필요한지 알아봤다. 비트연산을 통한 삽입, 삭제, 조회 등이 간단해짐 더 간결한 코드 작성이 가능 더 빠른 연산이 가능 비트마스크를 이용한 정수 표현으로 다이나믹 프로그래밍이 가능함 사실 4번 DP를 활용하기 위해 파이썬을 이용해서 비트마스크를 쓰는 방법을 연습했다. DFS를 할때 내가 방문했던 곳들의 상태를 저장하기 까다로울텐데 비트마스크를 쓰면 간단하게 쓸 수 있다.(n이 작다면) 파이썬에는 bin함수가 내장되있어서 쉽게 2진수로 출력이 가능하다 기본 계산 AND연산 bin(0b1010011010 & 0b110110110..