코딩 테스트/Baekjoon

S3 15654번: N과 M (5)

  • -
728x90
반응형

문제 보기 :  15654번: N과 M (5)


문제

  • 정답률 : 72%


작성 코드

arr_num, n = map(int,input().split())
arr = list(map(int,input().split()))
arr.sort()
visited = [False]*arr_num

def combination(n,new):
    answer = []
    if len(new)==n:
        return [new]
    for i in range(len(arr)):
        if not visited[i]:
            visited[i] = True
            answer.extend(combination(n,new+[arr[i]]))
            visited[i]=False
    return answer

answer = combination(n,[])
for a in answer:
    print(*a, sep=' ')

풀이

 

S3 15649. N과 M (1)

문제 보기 :  15649번: N과 M (1) 문제정답률 : 63%작성 코드def per(n,new): global arr answer = [] if len(new)==n: return [new] for i in range(len(arr)): if not visited[i]: visited[i]=True answer.extend(per(n,new+[arr[i]])) visited[i]=False re

dtdiary.tistory.com

 

S3 15650. N과 M (2)

문제 보기 :  15650번: N과 M (2) 문제정답률 : 73%작성 코드def combinations(n,new,c): answer = [] if len(new)==n: return [new] for i in range(c,len(arr)): answer.extend(combinations(n,new+[arr[i]],i+1)) return answern,m = map(int,input().spli

dtdiary.tistory.com

 

S3 15652. N과 M (4)

문제 보기 :  15652번: N과 M (4) 문제정답률 : 78% 작성 코드def product(n,new,c): global arr answer = [] if len(new) == n: return [new] for i in range(c,len(arr)): answer.extend(product(n,new+[arr[i]],i)) return answern,m = map(int,input().s

dtdiary.tistory.com

위 문제들은 itertools의 permutations, combinations, product, combinations_with_replacement를 함수로 직접 구현한 코드들이다.

위 방법을 참고해서 풀이하면 쉽게 풀린다.

320x100
728x90

'코딩 테스트 > Baekjoon' 카테고리의 다른 글

S4 10845. 큐  (0) 2024.12.07
S4 1018. 체스판 다시 칠하기  (0) 2024.12.07
S4 10773. 제로  (0) 2024.12.05
S4 1920. 수 찾기  (0) 2024.12.05
S1 11660. 구간 합 구하기 5  (1) 2024.12.03
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.