풀이
- 먼저 입력에 있는 단어를 앞에서부터 체크해서 완성을 체크할 큐를 만들어서 각 자리를 넣어줬다.
- 처음엔 StringBuilder에 이어붙이면서 체크하려했는데 그런 것보다는 그냥 이어붙인 수 각 자리에 큐 힙 상단에 있는 숫자만 같아지면 뺄 수 있다고 생각을 했다 😎 이후 큐가 비어있다면 최소한의 숫자로 완성을 했다는 것이기 때문에 탈출
- 큐를 사용한 가장 큰이유는 숫자가 예시처럼 ) 234092 일때 순차적으로 완성이 되야하기 때문
package problem_solving.greedy;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class BaekJoon_1515 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String t = sc.next();
Queue<Character> q = new LinkedList<Character>();
for(int i = 0 ; i < t.length();i++) {
q.offer(t.charAt(i));
}
int num = 1 ;
while(true) {
String s = Integer.toString(num);
for(int i = 0 ; i < s.length();i++) {
if( q.peek() == s.charAt(i)) {
q.poll();
}
if( q.isEmpty()) {
System.out.println(num);
return ;
}
}
num ++;
}
}
}