ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3980. [Python]선발 명단
    Python_알고리즘/Gold V 2024. 10. 21. 18:40

    1. 문제

     

    https://www.acmicpc.net/problem/3980

     

    2. 접근 방법

     

    • 시간 제한: 1초
    • 메모리 제한: 128MB
    • 백트래킹
    • 브루트 포스

     

    3. 파이썬 코드

     

    import sys
    
    input = sys.stdin.readline
    # 백트래킹
    def DFS(start):
        # 최대값 저장
        global max_value
        # 값 저장
        global value
        # 최종 11에 도달했을 때
        if start == 11:
            # 최대 값보다 값이 크면 갱신
            if max_value < value:
                max_value = value
            return
        # 11명의 포지션 바복
        for j in range(11):
            # 포지션 값이 0 이 아니고 방문안했을 경우
            if position[start][j] != 0 and pos_visited[j] == False:
                # 방문 처리 후 값 더해주고 재귀 실행 백트래킹
                pos_visited[j] = True
                value += position[start][j]
                DFS(start+1)
                value -= position[start][j]
                pos_visited[j] = False
    
    T = int(input())
    # 테스트 케이스 반복문 만큼 진행
    for _ in range(T):
        # 포지션별 리스트 추가
        position = []
        for _ in range(11):
            position.append(list(map(int,input().split())))
        # 최대값 기본 값
        max_value = 0
        value = 0
        # 방문처리 체크
        pos_visited = [False] * 11
        # 백트래킹
        for i in range(11):
            if position[0][i] != 0:
                pos_visited[i] = True
                value += position[0][i]
                DFS(1)
                value -= position[0][i]
                pos_visited[i] = False
        print(max_value)

     

    4. 문제를 풀고난 후 생각

     

    • 모든 경우의 수를 다 탐색하면서 알고리즘을 돌리면 된다.
    • 백트래킹을 진행하되 0 번인덱스를 기준으로 백트래킹을 해주면 원하는 결과값이 나온다.
    • 테스트 케이스 개수가 따로 명시되어있진 않았고 인풋이 많을 것 같아서 sys.stdin.readline 처리를 해줬다.

     

    5. 문제를 푸는데 도움이 되는 지식

     

    • 브루트 포스
    • 백트래킹

    'Python_알고리즘 > Gold V' 카테고리의 다른 글

    13023. [Python]ABCDE  (0) 2025.04.09
    13398. [Python]연속합 2  (0) 2025.03.16
    1469. [Python]숌 사이 수열  (0) 2024.10.08
    14719. [Python]빗물  (0) 2024.09.30
    2294. [Python]동전 2  (1) 2024.09.05

    댓글

Designed by Tistory.