공부 스토리/Programming / / 2020. 10. 29. 00:45

[이것이 코딩 테스트다 with Python] 그리디 알고리즘 기출풀이 - 볼링공 고르기

목차

    반응형

    내 풀이

    """
    ### 동빈나 <이것이 코딩테스트다> 기출 문제
    ## 그리디 알고리즘 - 5. 볼링공 고르기
    
    # 난이도 '하' / 시간제한 1초 / 메모리 제한 128MB / 기출: 2019 SW 마에스트로 입학 테스트
    # 풀이 시간제한: 30분
    """
    
    '''
    N: 볼링공의 개수 (1~)
    M: 볼링공의 최대 무게 (1 ~ 10)
    K: 각 볼링공의 무게 (같은 무게의 공도 서로 다른 공으로 간주)
    
    Result: A, B가 서로 무게가 다른 볼링공을 고르는 경우의 수 
    '''
    import time
    
    start_time = time.time()    # 시간 측정 시작
    
    N, M = map(int, input().split())
    K = list(map(int, input().split()))
    result = 0
    # combinationArr = list()   # 조합 확인용 리스트
    
    for i in range(len(K)-1):
        for j in range(i+1, len(K)):
            if K[i] == K[j]:
                continue
            result += 1
            #combinationArr.append((K[i], K[j]))
    
    print(result)
    #print(combinationArr)
    
    end_time = time.time()  # 시간 측정 종료
    print("프로그램 수행 시간: ", end_time - start_time)    # 수행 시간 출력
    

    테스트 케이스 및 수행 시간

    # Input
    5 3
    1 3 2 3 2
    
    # Output
    8

    - 내 풀이 수행 시간: 약 1.2초

    - 책에 수록된 정답 수행 시간: 약 1초

    내 풀이 설명

    - A가 먼저 하나를 고른 뒤 나머지 중에 B가 고를 수 있는 조합을 모두 구함

    반응형
    • 네이버 블로그 공유
    • 네이버 밴드 공유
    • 페이스북 공유
    • 카카오스토리 공유