백준 15665 파이썬

강한개발자·2021년 9월 26일
0

코딩왕이 되기 위해

목록 보기
12/15

문제

N 과 M (11)

백준 15665

풀이

N과 M 10번과 크게 다르지 않다

N과M에서는 중복된 출력을 방지하기 위해 중복체크를 해줬지만, 이 부분에서는 set함수만 이용하여 해결했다.

N과M 10번을 보고싶으면? N과M(10) 보러가기

달라진 점

  1. 숫자는 중복가능하다.-> 중복 횟수에 제한이 없음

이를 위해서 set 을 이용하여 중복된 입력값들을 제거해주고 여러번 넣을 수 있도록 하였다.

정답 코드

# N과 M (11)

# N개중에 M개 

# 같은 수 여러번 골라도 된다 

N,M=map(int,input().split())

lst=list(map(int,input().split()))

def solve(num,ans):
    if len(ans)==num:
        
        for i in ans:
            print(lst[i],end=' ')
        print()
        
        return
    
    for i in range(0,len(lst)):
        solve(num,ans+[i])
lst=list(set(lst))
lst.sort()
for i in range(len(lst)):
    solve(M,[i])

결과 정답

시간초과는 중복체크 배열에서 not in을 써서..

profile
강한친구의 코딩 성장기

0개의 댓글