4881. [파이썬 S/W 문제해결 기본] 5일차 - 배열 최소 합

2025. 5. 12. 15:34·coding test/SW Expert Academy

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AWTQh00qQs0DFAVT&categoryId=AWTQh00qQs0DFAVT&categoryType=CODE&problemTitle=&orderBy=PASS_RATE&selectCodeLang=PYTHON&select-1=2&pageSize=10&pageIndex=5#

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

#dfs함수 정의
def dfs(depth, total):
    global min_sum

    if total>min_sum:
        return

    if depth==N:
        min_sum=min(min_sum,total)
        return

    for i in range(N):
        if not visited[i]:
            visited[i]=True
            dfs(depth+1,total+arr[depth][i])

            visited[i]=False #백트레킹

T=int(input())
for tc in range(1,T+1):
    #1.입력받기
    N=int(input())
    arr=[]
    for _ in range(N):
        arr.append(list(map(int,input().split())))
    
    #2.필요한 자료형 정의
    min_sum=float('inf') #무한대
    visited=[False for _ in range(N)]
    
    #3.동작함수
    dfs(0,0) #depth,total
    
    #4.출력
    print('#{} {}'.format(tc,min_sum))

DFS로 풀 수 있을꺼라 생각을 못했어서 연습이 많이 필요함을 또 느꼈다.

 

처음에 조합을 풀었었는데 시간 초과나서 틀렸었다.

# 모든 경우의 수 체크
# 3<=N<=10, 순열 사용해도 메모리 초과 없을 듯
# ex) 3-> (1,2,3)(1,3,2)(2,1,3)(2,3,1)(3,2,1)(3,1,2)

from itertools import permutations

T=int(input())
for tc in range(1,T+1):
    N=int(input())
    matrix=[]
    for _ in range(N):
        matrix.append(list(map(int,input().split())))

    ans=101
    num=[i for i in range(N)]
    perm=list(permutations(num,N))

    for case in perm: #(0,1,2) ->x
        tmp=0

        for x in range(N):
            tmp += matrix[x][case[x]]
            
            if tmp>ans:
                break

        ans=min(ans,tmp)

    print('#{} {}'.format(tc,ans))

 

한 달 가까이를 BFS/DFS 공부했는데 아직도 못 푸는게 살짝 현타가 온 건 비밀,,,ㅎㅎ,,,,,

열심히 하다보면 언젠가 술술 풀리겠지~~~

'coding test > SW Expert Academy' 카테고리의 다른 글

[Python] 1855번 영준이의 진짜 BFS  (1) 2025.12.14
1220. [S/W 문제해결 기본] 5일차 - Magnetic  (0) 2025.05.23
4861. [파이썬 S/W 문제해결 기본] 3일차 - 회문  (0) 2025.05.20
1240. [S/W 문제해결 응용] 1일차 - 단순 2진 암호코드  (0) 2025.05.19
5185. [파이썬 S/W 문제해결 구현] 1일차 - 이진수  (0) 2025.05.09
'coding test/SW Expert Academy' 카테고리의 다른 글
  • 1220. [S/W 문제해결 기본] 5일차 - Magnetic
  • 4861. [파이썬 S/W 문제해결 기본] 3일차 - 회문
  • 1240. [S/W 문제해결 응용] 1일차 - 단순 2진 암호코드
  • 5185. [파이썬 S/W 문제해결 구현] 1일차 - 이진수
wish404
wish404
자동 로그
  • wish404
    wish-log
    wish404
    • 홈
    • 태그
    • 방명록
    • github
    • 분류 전체보기 (75)
      • log (8)
        • 블로그 관리 (5)
        • 에러 모음 (2)
      • coding test (47)
        • Algorithm (4)
        • Baekjoon (34)
        • SW Expert Academy (6)
        • etc (3)
      • 프로그래밍 언어 (7)
        • JAVA (7)
      • 데이터 엔지니어링 (5)
        • Kafka (0)
        • Spark (4)
        • Airflow (1)
        • Elasticsearch (0)
      • 머신러닝&딥러닝 (3)
        • Kaggle 스터디 (3)
        • 논문 리뷰 (0)
        • MLOps (0)
      • 신입 개발자가 되기까지 (5)
        • 취준일기 (1)
        • SSAFY (2)
        • 프로젝트 (1)
        • CS 공부 (1)
  • 인기 글

  • 태그

    플로이드워샬
    복습해야지
    SSAFY
    다익스트라
    그리디
    중위순회
    벨만포드
    dp
    heapq
    복습
    BFS
    그리디 알고리즘
    후위순회
    Dijkstra
    dijk
    dfs
    최단 경로
    틀린문제
    싸피
    전위순회
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
wish404
4881. [파이썬 S/W 문제해결 기본] 5일차 - 배열 최소 합
상단으로

티스토리툴바