백준 1515 (수 이어 쓰기) - Java
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String N = br.readLine();
// 자릿수
int digit = 0;
// 숫자
int num = 0;
for (int i = 0; i < N.length(); i++) {
// 해당 숫자가 전에 숫자보다 크면 자릿수 + 1
if (N.charAt(i) - 48 <= num) {
digit++;
if (i == N.length() - 1) {
num = 0;
break;
}
}
// 해당 숫자 저장
num = N.charAt(i) - 48;
}
System.out.println(10 * digit + num + "\n");
bw.flush();
bw.close();
br.close();
}
}
<초기에 생각했던 코드>
import java.io.*;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String line = br.readLine();
int digit = 0;
int num = 0;
boolean flag = false;
while (num++ <= 30000) {
String tmp = String.valueOf(num);
for (int i = 0; i < tmp.length(); i++) {
if (tmp.charAt(i) == line.charAt(digit))
digit++;
if (digit == line.length()) {
bw.write(num + "\n");
flag = true;
break;
}
}
if (flag) break;
}
bw.flush();
bw.close();
br.close();
}
}
많은 도움이 되었습니다, 감사합니다.