백준 - 수 이어 쓰기 ( 1515번, JAVA )

changi123·2025년 3월 12일
post-thumbnail

Greedy ( https://www.acmicpc.net/problem/1515 )

풀이

  • 먼저 입력에 있는 단어를 앞에서부터 체크해서 완성을 체크할 큐를 만들어서 각 자리를 넣어줬다.
  • 처음엔 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 ++;
		}
	}

}

profile
개발자 홍찬기 꾸준한 사람이 되자

0개의 댓글