18511번: 큰 수 구성하기
첫째 줄에 N, K의 원소의 개수가 공백을 기준으로 구분되어 자연수로 주어진다. (10 ≤ N ≤ 100,000,000, 1 ≤ K의 원소의 개수 ≤ 3) 둘째 줄에 K의 원소들이 공백을 기준으로 구분되어 주어진다. 각
www.acmicpc.net
문제
N보다 작거나 같은 자연수 중에서, 집합 K의 원소로만 구성된 가장 큰 수를 출력하는 프로그램을 작성하시오. K의 모든 원소는 1부터 9까지의 자연수로만 구성된다.
예를 들어 N=657이고, K={1, 5, 7}일 때 답은 577이다.
입력
첫째 줄에 N, K의 원소의 개수가 공백을 기준으로 구분되어 자연수로 주어진다. (10 ≤ N ≤ 100,000,000, 1 ≤ K의 원소의 개수 ≤ 3) 둘째 줄에 K의 원소들이 공백을 기준으로 구분되어 주어진다. 각 원소는 1부터 9까지의 자연수다.
단, 항상 K의 원소로만 구성된 N보다 작거나 같은 자연수를 만들 수 있는 경우만 입력으로 주어진다.
출력
첫째 줄에 N보다 작거나 같은 자연수 중에서, K의 원소로만 구성된 가장 큰 수를 출력한다.
코드
from itertools import product
n, k = map(int, input().split())
k_arr = list(input().split())
ans = 0
for i in range(len(str(n)), len(str(n))-2, -1):
for comb in product(k_arr, repeat=i):
num = int(''.join(comb))
if num <= n:
ans = max(ans, num)
print(ans)
itertools 모듈의 product 함수를 사용하면 중복순열을 쉽게 사용할 수 있다.
'문제풀이 > 완전탐색' 카테고리의 다른 글
[Python/파이썬] 백준 5568번 카드 놓기 (0) | 2023.04.27 |
---|---|
[Python/파이썬] 백준 1969번 DNA (0) | 2023.04.27 |
[Python/파이썬] 백준 15721번 번데기 (0) | 2023.04.26 |
[Python/파이썬] 백준 12919번 A와 B 2 (0) | 2023.03.19 |
[Python/파이썬] 백준 15661번 링크와 스타트 (0) | 2023.03.02 |
18511번: 큰 수 구성하기
첫째 줄에 N, K의 원소의 개수가 공백을 기준으로 구분되어 자연수로 주어진다. (10 ≤ N ≤ 100,000,000, 1 ≤ K의 원소의 개수 ≤ 3) 둘째 줄에 K의 원소들이 공백을 기준으로 구분되어 주어진다. 각
www.acmicpc.net
문제
N보다 작거나 같은 자연수 중에서, 집합 K의 원소로만 구성된 가장 큰 수를 출력하는 프로그램을 작성하시오. K의 모든 원소는 1부터 9까지의 자연수로만 구성된다.
예를 들어 N=657이고, K={1, 5, 7}일 때 답은 577이다.
입력
첫째 줄에 N, K의 원소의 개수가 공백을 기준으로 구분되어 자연수로 주어진다. (10 ≤ N ≤ 100,000,000, 1 ≤ K의 원소의 개수 ≤ 3) 둘째 줄에 K의 원소들이 공백을 기준으로 구분되어 주어진다. 각 원소는 1부터 9까지의 자연수다.
단, 항상 K의 원소로만 구성된 N보다 작거나 같은 자연수를 만들 수 있는 경우만 입력으로 주어진다.
출력
첫째 줄에 N보다 작거나 같은 자연수 중에서, K의 원소로만 구성된 가장 큰 수를 출력한다.
코드
from itertools import product n, k = map(int, input().split()) k_arr = list(input().split()) ans = 0 for i in range(len(str(n)), len(str(n))-2, -1): for comb in product(k_arr, repeat=i): num = int(''.join(comb)) if num <= n: ans = max(ans, num) print(ans)
itertools 모듈의 product 함수를 사용하면 중복순열을 쉽게 사용할 수 있다.
'문제풀이 > 완전탐색' 카테고리의 다른 글
[Python/파이썬] 백준 5568번 카드 놓기 (0) | 2023.04.27 |
---|---|
[Python/파이썬] 백준 1969번 DNA (0) | 2023.04.27 |
[Python/파이썬] 백준 15721번 번데기 (0) | 2023.04.26 |
[Python/파이썬] 백준 12919번 A와 B 2 (0) | 2023.03.19 |
[Python/파이썬] 백준 15661번 링크와 스타트 (0) | 2023.03.02 |