큰 수 구성하기

면접 대비

시간 제한1초메모리 제한256 MB

요약
N과 숫자 집합 K(크기 1~3)가 주어질 때, N 이하이면서 모든 자릿수가 K에 속하는 가장 큰 수를 구한다.
난이도

보통10점 중 5점

유형
그리디, 백트래킹, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

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의 원소로만 구성된 가장 큰 수를 출력한다.

예제1

  1. 예제 1

    입력
    657 3
    1 5 7
    
    예상 출력
    577