본문 바로가기

Python26

[백준/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.
[백준/11725] 트리의 부모 찾기 (bfs, python) [백준/11725] 트리의 부모 찾기 풀이bfs, python 1. 문제https://www.acmicpc.net/problem/117252. 문제 해결 아이디어 트리의 루트는 항상 1이다. 그러므로 첫번째 예제의 입력을 트리 그림으로 나타내면 다음과 같다. 1. 입력값으로 노드별로 연결된 노드를 저장하는 2차원 배열을 생성한다.1.1. 추가로 부모 노드를 저장하기 위해, 각 노드의 개수 + 1 만큼 (0번은 제외할거라서) 0으로 채워진 1차원 배열을 생성한다. 2. 1 ~ N번 (노드의 개수) 노드까지 완전탐색하면서, BFS를 수행한다.2.1. BFS를 수행하면 1 -> 6 -> 4 -> 3 -> 2 -> 7 -> 5 순서로 이동하게 되는데, 현재 노드기준으로 자식 노드로 이동할때마다 부모 노드를 저장.. 2025. 8. 5.
[백준/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.