백준18511 - 큰 수 구성하기 (재귀) python 본문
반응형
https://www.acmicpc.net/problem/18511
문제 설명 주어진 집합으로 n보다 작으며 가장 큰 수를 구하는 문제다.
문제 풀이 방식
재귀를 활용하여 만들 수 있는 모든 경우를 구한 뒤 출력하는 방식으로 구현했다.
import sys
data_temp = sys.stdin if sys.platform == 'linux' else open('입력.txt', 'r')
input_data = data_temp.read().splitlines()
def solution (data) :
arr = [list(map(int, v.split())) for v in data]
[T,N],numbers = arr
storage = []
def recursive (n) :
if n > T : return
for num in numbers :
next = n * 10 + num
if T >= next :
storage.append(next)
recursive(next)
for num in numbers :
storage.append(num)
recursive(num)
storage.sort()
print(storage[-1] if len(storage) else 0)
solution(input_data)
반응형
'개발 > algorithm' 카테고리의 다른 글
백준20040 - 사이클 게임 (스패닝 트리) node.js (1) | 2024.01.03 |
---|---|
백준23757 - 아이들과 선물 상자 (Heap) python (0) | 2024.01.02 |
백준1303 - 전쟁 -전투 (BFS) python (1) | 2023.12.30 |
백준4803 - 트리 (find-union) node.js (1) | 2023.12.29 |
백준1590 - 캠프가는 영식 (완전탐색) node.js (1) | 2023.12.28 |
Comments