반응형
-내 생각
반복문을 통해서 증가시키면서 확인하려고 했으며, 증가 값이 n%10 = 6인 경우, 예를 들어 6일 때는 66을 뒤에 붙이고 마지막 자리는 0~9를 채우는 식으로 하려고 했었는데, 너무 복잡한 방식이었다....
-해법
결국 문제에 답이 있었다. 666이라는 숫자는 무조건 연속해야 하기 때문에 단순히 숫자를 증가시키면서 666이 포함되어있는 경우에 입력받은 n을 감소시키면 되는 거였다...
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n= sc.nextInt();
int num=0; // 증가 숫자
while(n>0) { // n이 0이 될 때 까지
num++;
if(String.valueOf(num).contains("666")) { // 문자열로 변환해 666이 포함되는지 여부 확인
n--; // 포함되면 갯수를 하나 줄인다.
}
}
System.out.println(num); // 결국 n이0이 됬을 때가 n번째 숫자인 것이다.
}
}
이 문제 역시 부르트 포스답다고 생각했다. 1부터 단순히 증가시키면서 모든 경우를 확인하면 되는 거니까 ㅋㅋㅋ
반응형