일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Kafka
- Algorithm
- JavaScript
- 운영체제
- 자바
- design pattern
- redis
- react
- OS
- c언어
- Heap
- Galera Cluster
- Proxy
- 디자인 패턴
- 알고리즘
- 백준
- spring webflux
- 자료구조
- C
- Spring
- Java
- 컴퓨터구조
- MSA
- 네트워크
- 파이썬
- MySQL
- JPA
- Data Structure
- IT
- mongoDB
Archives
- Today
- Total
시냅스
백준 boj 15661 - 링크와 스타트 (파이썬, python) 본문
https://www.acmicpc.net/problem/15661
브루트포스와 백트래킹을 활용하여 풀었다.
가능한 조합을 모두 뽑아줘야 했지만,
시간제약의 관계로 dfs를 돌릴 때 for문을 쓰지 않는 방법으로 접근하였다.
조합을 뽑아 냈으면 start와 link로 나눠 차이를 구하고, 최소값을 갱신해줬다.
code
n = int(input())
stats = [list(map(int, input().split())) for i in range(n)]
visited = [0] * n
ans = 99999
def is_it():
global ans
start, link = 0, 0
for i in range(n):
for j in range(n):
if visited[i] and visited[j]:
start += stats[i][j]
elif not visited[i] and not visited[j]:
link += stats[i][j]
ans = min(ans, abs(start - link))
return
def resolve(iter):
if iter == n:
is_it()
return
visited[iter] = 1
resolve(iter + 1)
visited[iter] = 0
resolve(iter + 1)
resolve(0)
print(ans)
'알고리즘' 카테고리의 다른 글
크루스칼 알고리즘 C언어로 구현 (0) | 2022.06.07 |
---|---|
백준 boj 2529 - 부등호 (파이썬, python) (0) | 2022.03.01 |
백준 boj 14501 - 퇴사 (파이썬, python) (0) | 2022.02.23 |
백준 boj 1759 - 암호 만들기 (파이썬, python) (0) | 2022.02.23 |
백준 boj 15663 - N과 M(9) (파이썬, python) (0) | 2022.02.19 |
Comments