[백준/17471/파이썬] 게리맨더링 풀이 (bfs, 비트마스킹, python)
[백준/17471/파이썬] 게리맨더링 풀이 (bfs, 비트마스킹, Python) 1. 문제https://www.acmicpc.net/problem/17471 2. 문제 해결 아이디어 선거구역이 4개가 있다고 치자.그러면 {1,2,3,4}의 선거구역이 집합으로 있다고 볼것이다. 1. 부분집합을 구하여 선거구를 A선거구, B선거구 총 2개로 나눈다. 1.1. 비트마스킹을 이용하여 A, B 집합을 구한다.- A 선거구를 기준으로 부분집합을 구할 건데, 이때 각 선거구당 1개 이상 구역이 있어야 하므로 { } 공집합과 { 1,2,3,4 } 모두 들어가 있는 집합은 제외해서 구해줄 거다. (^)- 이때 부분집합은 비트마스킹을 이용하여 구해준다. (1 ~ (1 ※ A 선거구의 부분집합을 구해서 남은 집합을 ..
2025. 8. 28.
[SWEA/1249] 보급로 풀이 (python, java, bfs)
[SWEA/1249] 보급로 풀이(BFS, 파이썬, 자바, python, java) 1. 문제1. 문제 소개 링크 :https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15QRX6APsCFAYDN * N의 2차원 배열이 주어진다.각 칸에 쓰인 값은 도로가 파인 깊이이며, 그 칸을 복구하는 데 걸리는 시간이다.맨 왼쪽 위에서 출발하여 -> 맨 오른쪽 아래로 도착하는 경로들 중, 각 경로마다 위치에 있는 값들을 모두 모두 합쳤을 때, 가장 작게 나오는 경로의 sum 값을 찾는 문제 2. 출력복구에 드는 시간이 가장 적게 드는 경로의 복구시간즉, 출발지부터 도착지까지 경로에 있는 값을 모두 합쳤을때 가장 최소가 되는 ..
2025. 8. 27.
[백준/11723] 집합 비트마스킹 활용 풀이(python, javascript)
[백준/11723] 집합 비트마스킹 풀이(파이썬, 자바스크립트, python, js, javascript) 1. 문제https://www.acmicpc.net/problem/11723add x: S에 x를 추가한다. (1 ≤ x ≤ 20) S에 x가 이미 있는 경우에는 연산을 무시한다.remove x: S에서 x를 제거한다. (1 ≤ x ≤ 20) S에 x가 없는 경우에는 연산을 무시한다.check x: S에 x가 있으면 1을, 없으면 0을 출력한다. (1 ≤ x ≤ 20)toggle x: S에 x가 있으면 x를 제거하고, 없으면 x를 추가한다. (1 ≤ x ≤ 20)all: S를 {1, 2,..., 20}으로 바꾼다.empty: S를 공집합으로 바꾼다.2. 문제 풀이이 문제는, 0~20까지 집합이 있..
2025. 6. 12.