백준 15666 파이썬

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

코딩왕이 되기 위해

목록 보기
13/15

문제

N 과 M (12)

백준 15666

풀이

N과 M 문제의 조건들을 모두 모아놓은 문제다
10번의 비 내림차순 조건
11번의 중복 여러번 가능 조건
합쳐놓은 문제다.

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

중복 가능 조건

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

비내림차순 조건

  1. 비내림차순이다. -> 수열이 같거나 커지는 순이다. 정렬 이후 시작 index를 기준으로 같은 index이거나 더 큰 index만 탐색한다.

정답 코드

# N과 M (11)

# N개중에 M개 

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

# 비내림차순이다 

# 끝판왕!?!?

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

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

결과 정답

profile
강한친구의 코딩 성장기

0개의 댓글