[백준, BOJ 1515] 수 이어 쓰기 (java)
Problem Solving/BOJ

[백준, BOJ 1515] 수 이어 쓰기 (java)

728x90

https://www.acmicpc.net/problem/1515

메모리: 14,212 KB , 시간: 110 ms

사용 알고리즘: 브루트포스 알고리즘, 그리디 알고리즘, 구현, 문자열, 자료 구조

728x90

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Deque;

public class Main {

    public static void main(String[] args) throws Exception{

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String N = br.readLine();

        int now = 0; // 현재 수
        Deque<Character> dq = new ArrayDeque<>();

        Character n;
        int tmp;
        for (int i = 0; i < N.length(); i++) {
            n = N.charAt(i); // N의 i번째 자리에 오는 숫자

            while(true) {
                if(dq.isEmpty()) { // 큐에 아무 수도 없다는건 현재 n이 now에 속하는 숫자가 아님
                    now++; // now를 +1 해주고

                    // now의 숫자들을 큐에 넣어줌
                    tmp = now;
                    while(tmp > 0) {
                        dq.addFirst((char)((tmp % 10) + '0'));
                        tmp /= 10;
                    }
                }

                // n에 해당하는 숫자를 찾았다면 다음 n을 확인하러
                if(dq.pollFirst() == n) {
                    break;
                }
            }
        }

        System.out.println(now);
    }
}
728x90