백준 1515번 수 이어 쓰기

이상민·2023년 10월 3일
0

알고리즘

목록 보기
66/128
import java.awt.event.ItemEvent;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Concatenate_Numbers {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        int N = 1;
        int index =0;
        while(true){
            String temp = String.valueOf(N);
            for (int j = 0; j < temp.length(); j++) {
                int cur = str.charAt(index)-'0';
                if(cur==temp.charAt(j)-'0'){
                    index++;
                }
                if(index==str.length()){
                    System.out.println(N);
                    return;
                }
            }
            N++;
        }
    }
}

풀이방법

이문제는 가상의 수 N을 하나씩 증가시키면서 나열된숫자와 한자리씩 비교하는 방식으로 풀어야 한다.

검정색이 지워진 수이고, N을 1부터 하나씩 증가시켜가며,
N이 빨간색 숫자를 포함하고 있으면, 다음 빨간색 숫자를 비교한다.

  1. N을 1부터 하나씩 증가시키며 매 반복마다 문자열로 변환한다.
  2. 나열된 숫자 str의 index번째 숫자와 N의 j번째 숫자와 같다면,
    index와 j를 증가시켜서 str의 다음 숫자와 N의 j번째 숫자를 비교한다.
  3. str의 마지막 숫자까지 비교하면 그때의 N을 출력한다.
profile
개린이

0개의 댓글